我试图通过代理使用HttpClient:
var httpClientHandler = new HttpClientHandler {UseProxy = true, Proxy = new WebProxy("xxx.xxx.xxx.xxx:6762")};
var httpClient = new HttpClient(httpClientHandler) {Timeout = TimeSpan.FromSeconds(3)};
在代码中定义了3秒超时时,通过此httpClient发送的请求超时。通过实验,我发现我需要将超时设置为至少30秒才能完成请求。所以你认为代理只是慢,对吧?
除了:如果我在本地运行Fiddler并将httpClientHandler设置为使用" localhost:8888" (Fiddler的端口)然后依次连接Fiddler以使用上游的SAME代理(如下图所示),请求几乎立即回来。
什么可以解释这种行为?
编辑:我还应该提一下,我在看到这种行为时所做的请求都是HTTPS。我知道Fiddler会将自己的证书插入到证书路径中,所以也许这只是解释的一部分,但我知识不足以将所有部分放在一起。