测试代理以查看是否需要身份验证

时间:2012-01-26 15:55:12

标签: c# proxy http-status-codes http-status-code-407

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

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

以下是我的示例代码:

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 test。

赞赏任何想法或消息。

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为对代理的请求允许它通过(可以这么说)不遵循HTTP标准,不返回407状态代码。您可以通过使用WireShark http://www.wireshark.org/或使用Chromes Developer Tools(Ctrl + Shift + I)等浏览器调试工具进行数据包嗅探来查看此信息。您还可以通过查看此案例的webRes.StatusCode值来查看返回的状态代码。