我有一个要遍历的代理列表,并进行测试以确保它们正常工作,还进行测试以确保它们不需要用户名和密码。

但是,该测试似乎无法正常工作。例如,我有一个代理,我知道它需要使用用户名和密码,但是通过某种方式还是可以通过测试的。

这是我的示例代码:

HttpWebRequest webReq = (HttpWebRequest)System.Net.HttpWebRequest.Create("http://www.google.com");
webReq.Proxy = new WebProxy(proxy);
HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse();
if (webRes.StatusCode != HttpStatusCode.ProxyAuthenticationRequired)
{

    Stream myStream = webRes.GetResponseStream();
    if (myStream != null)
    {
        success = true;
    }
}


例如,以下代理要求身份验证:“ 66.60.148.11:3128”。但是,当我运行代码时,webRes.StatusCode会返回OK,并通过了webRes.StatusCode!= HttpStatusCode.ProxyAuthenticationRequired测试。

任何想法或建议表示赞赏。

谢谢!

最佳答案

我可以想象对代理的请求(通过它可以通过它)可以说不遵循HTTP标准,即不返回407状态代码。您可以通过使用WireShark http://www.wireshark.org/之类的数据包嗅探或使用诸如Chromes Developer Tools(Ctrl + Shift + I)之类的浏览器调试工具来进行查看。您也可以通过查看webRes.StatusCode的值来查看返回的状态码。

09-27 18:06