diff --git a/src/HtmlAgilityPack.Shared/HtmlWeb.cs b/src/HtmlAgilityPack.Shared/HtmlWeb.cs index e3e64ed..74cda57 100644 --- a/src/HtmlAgilityPack.Shared/HtmlWeb.cs +++ b/src/HtmlAgilityPack.Shared/HtmlWeb.cs @@ -124,12 +124,13 @@ public partial class HtmlWeb internal static ConcurrentDictionary SharedHttpClient = new ConcurrentDictionary(); - internal static HttpClient GetSharedHttpClient(string userAgent) + internal static HttpClient GetSharedHttpClient(HtmlWeb web) { - return SharedHttpClient.GetOrAdd(userAgent, x => + return SharedHttpClient.GetOrAdd(web.UserAgent, x => { var client = new HttpClient(); - client.DefaultRequestHeaders.Add("User-Agent", userAgent); + client.Timeout = TimeSpan.FromMilliseconds(web.Timeout); + client.DefaultRequestHeaders.Add("User-Agent", web.UserAgent); return client; }); } @@ -2422,16 +2423,16 @@ public async Task LoadFromWebAsync(Uri uri, Encoding encoding, Net if(credentials != null || CaptureRedirect) { client = new HttpClient(clientHandler); - + client.Timeout = TimeSpan.FromMilliseconds(Timeout); //https://stackoverflow.com/questions/44076962/how-do-i-set-a-default-user-agent-on-an-httpclient client.DefaultRequestHeaders.Add("User-Agent", this.UserAgent); } else { - client = GetSharedHttpClient(this.UserAgent); + client = GetSharedHttpClient(this); } - client.Timeout = TimeSpan.FromMilliseconds(Timeout); + var e = await client.GetAsync(uri, cancellationToken).ConfigureAwait(false); _statusCode = e.StatusCode;