2012-01-26 62 views
4

我有一個代理列表,我想循環和測試,以確保它們正在工作,並測試以確保它們不需要用戶名和密碼。測試代理,看看它是否需要認證

但是,測試似乎沒有正常工作。例如,我有一個我知道需要使用用戶名和密碼的代理,但它通過了測試。

這裏是我有示例代碼:

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測試。

任何想法或建議表示讚賞。

謝謝!

回答

1

我會想象到允許它通過的代理的請求(可以這麼說)不是遵循HTTP標準,而是不返回407狀態代碼。您可以通過使用WireShark http://www.wireshark.org/或使用瀏覽器調試工具(如Ctrl + Shift + I)進行數據包嗅探來查看此信息。您還可以通過查看此案例的值webRes.StatusCode來查看返回的狀態代碼。

相關問題