Skip to content

Commit 14a57e6

Browse files
Fix timeout issue #586
1 parent 720f393 commit 14a57e6

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/HtmlAgilityPack.Shared/HtmlWeb.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,13 @@ public partial class HtmlWeb
124124
internal static ConcurrentDictionary<string, HttpClient> SharedHttpClient = new ConcurrentDictionary<string, HttpClient>();
125125

126126

127-
internal static HttpClient GetSharedHttpClient(string userAgent)
127+
internal static HttpClient GetSharedHttpClient(HtmlWeb web)
128128
{
129-
return SharedHttpClient.GetOrAdd(userAgent, x =>
129+
return SharedHttpClient.GetOrAdd(web.UserAgent, x =>
130130
{
131131
var client = new HttpClient();
132-
client.DefaultRequestHeaders.Add("User-Agent", userAgent);
132+
client.Timeout = TimeSpan.FromMilliseconds(web.Timeout);
133+
client.DefaultRequestHeaders.Add("User-Agent", web.UserAgent);
133134
return client;
134135
});
135136
}
@@ -2422,16 +2423,16 @@ public async Task<HtmlDocument> LoadFromWebAsync(Uri uri, Encoding encoding, Net
24222423
if(credentials != null || CaptureRedirect)
24232424
{
24242425
client = new HttpClient(clientHandler);
2425-
2426+
client.Timeout = TimeSpan.FromMilliseconds(Timeout);
24262427
//https://stackoverflow.com/questions/44076962/how-do-i-set-a-default-user-agent-on-an-httpclient
24272428
client.DefaultRequestHeaders.Add("User-Agent", this.UserAgent);
24282429
}
24292430
else
24302431
{
2431-
client = GetSharedHttpClient(this.UserAgent);
2432+
client = GetSharedHttpClient(this);
24322433
}
24332434

2434-
client.Timeout = TimeSpan.FromMilliseconds(Timeout);
2435+
24352436

24362437
var e = await client.GetAsync(uri, cancellationToken).ConfigureAwait(false);
24372438
_statusCode = e.StatusCode;

0 commit comments

Comments
 (0)