/// <summary> /// Returns a task which contains a string converted from remote document when completed, by using the provided address. /// </summary> /// <param name="address">Location of document</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation. <see cref="CancellationToken"/></param> /// <returns>Document as a string</returns> public byte[] GetDocument(string address, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(address)) { throw new ArgumentNullException(nameof(address)); } if (!IsHttps(address) && RequireHttps) { ThrowHelper.ThrowArgumentException_RequireHttpsException(address); } if (_disposed) { ThrowHelper.ThrowObjectDisposedException(GetType()); } using HttpResponseMessage response = _httpClient.GetAsync(address, cancellationToken).ConfigureAwait(false).GetAwaiter().GetResult().EnsureSuccessStatusCode(); return(response.Content.ReadAsByteArrayAsync().ConfigureAwait(false).GetAwaiter().GetResult()); }