不使用Fiddler代理时C#HttpClient 504网关超时
我有这个简单的代码来实例化一个HttpClient对象,并发送一些webrequests,但遇到了一些问题,我将很快解释:不使用Fiddler代理时C#HttpClient 504网关超时,c#,http,fiddler,C#,Http,Fiddler,我有这个简单的代码来实例化一个HttpClient对象,并发送一些webrequests,但遇到了一些问题,我将很快解释: var client = WebHelper.CreateGzipHttpClient(new WebProxy("127.0.0.1", 8888)); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (
var client = WebHelper.CreateGzipHttpClient(new WebProxy("127.0.0.1", 8888));
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36");
client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.9");
client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, br");
client.DefaultRequestHeaders.Add("Sec-Fetch-Mode", "navigate");
client.DefaultRequestHeaders.Add("Sec-Fetch-Site", "none");
client.DefaultRequestHeaders.Add("Sec-Fetch-User", "?1");
client.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1");
await client.GetAsync("https://www.example.com");
await client.GetAsync("https://www.bestbuy.com");
await client.GetAsync("https://www.costco.com");
如果我删除对example.com的请求,后续请求将失败(bestbuy.com上的504网关超时)。对我来说没有任何意义,所以我想知道是否有人可以告诉我为什么会这样
此外,如果我从HttpClient中删除WebProxy,则只有对example.com的请求将成功,而其他两个请求将失败
发生了什么事?我如何修复
public static HttpClient CreateGzipHttpClient(WebProxy proxy = null)
{
HttpClientHandler handler = new HttpClientHandler()
{
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
Proxy = proxy
};
return new HttpClient(handler);
}
通过删除Internet Explorer的Internet选项中与Fiddler相关的SSL证书进行修复。即使在卸载之后,这些文件也没有被删除