Skip to content

Commit

Permalink
Fix timeout issue #586
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanMagnan committed Feb 27, 2025
1 parent 720f393 commit 14a57e6
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/HtmlAgilityPack.Shared/HtmlWeb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,13 @@ public partial class HtmlWeb
internal static ConcurrentDictionary<string, HttpClient> SharedHttpClient = new ConcurrentDictionary<string, HttpClient>();


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;
});
}
Expand Down Expand Up @@ -2422,16 +2423,16 @@ public async Task<HtmlDocument> 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;
Expand Down

0 comments on commit 14a57e6

Please sign in to comment.