我完全清楚这个问题(或类似问题)已经发布了数千次。然而,这些解决方案都不适合我。我已经在c#中进行了数百次代理连接,但出于某种原因,我现在一直在获得407。 我只是想使用一个非常基本的http代理向谷歌提出get请求。
过了一段时间,我最终看到了这里提出的问题的答案: HttpClient and using proxy - constantly getting 407
由于某种原因仍然让我回归407。 这是我的确切代码
string proxyUri = string.Format("{0}:{1}", "xxx.xxx.xxx.xxx", "xxx");
NetworkCredential proxyCreds = new NetworkCredential(
"xxxx",
"xxxx"
);
WebProxy proxy = new WebProxy(proxyUri, false)
{
UseDefaultCredentials = false,
Credentials = proxyCreds,
};
var cookieContainer = new CookieContainer();
var handler = new HttpClientHandler()
{
Proxy = proxy,
PreAuthenticate = true,
UseDefaultCredentials = false,
CookieContainer = cookieContainer
};
var client = new HttpClient(handler)
var result = client.GetAsync("https://www.google.com");
我觉得一切看起来都是正确的,但由于某种原因,结果并非如此。 任何建议都将不胜感激。
编辑: 我现在甚至尝试过使用webclient,它有完全相同的问题。 我在想它可能使用代理作为http代理而不是https? 可以以某种方式指定协议吗?
编辑2: 使用webclient时,我注意到,当使用正确的凭据时,我得到“操作超时”,当凭证错误时,立即使用407。