c# - tor國家 - tor危險



服務器違反了協議。 Section=使用Tor代理時的ResponseStatusLine (2)

我正在嘗試使用我的asp.net應用程序使用tor代理髮送httpwebrequest,並在調用webresponse.GetResponse()方法時收到此錯誤消息:

服務器違反了協議。 第= ResponseStatusLine

我試過在網上搜索一個解決方案,我發現這個錯誤的3個主要解決方案:

  1. 添加到Web.config。

    <system.net>
      <settings>
        <httpWebRequest useUnsafeHeaderParsing="true"/>
      </settings>
    </system.net>`
  2. 添加行: webRequest.ProtocolVersion = HttpVersion.Version10; 到代碼。

  3. 添加行request.ServicePoint.Expect100Continue = false; 到代碼。

列出的每個解決方案都不會改變有關錯誤消息的事情。

請求代碼如下:

WebRequest.DefaultWebProxy = new WebRequest("127.0.0.1:9051");
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

webRequest.CookieContainer = new CookieContainer();
webRequest.ProtocolVersion = HttpVersion.Version10;
webRequest.KeepAlive = false;
webRequest.Method = "GET";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19";

HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
StreamReader streamReader = new StreamReader(webResponse.GetResponseStream());

string html = streamReader.ReadToEnd();
webResponse.Close();
return html;

任何人都可以幫我找到解決辦法嗎?

https://ffff65535.com


通過查看異常的Response屬性,然後檢查StatusDescriptionStatusCode屬性,可以獲取有關異常的更多細節,這實際上是WebException 。 這將幫助您獲得有關錯誤的更多詳細信息,並希望將您指向正確的方向。

像這樣的東西:

    catch(WebException e) 
    {
        if(e.Status == WebExceptionStatus.ProtocolError)
        {
            Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
            Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
        }
    }

另外,請看一下MSDN上的WebException.Status示例以獲取更多詳細信息


我有同樣的問題。 httpwebrequest getresponse方法總是返回錯誤協議vialotion,我解決了這個問題;

首先我使用xml com對象而不是xdocument或xmldocument。

這個com對像有幾個版本的Microsft XML,v3.0-v5.0-v6.0。 我用v6.0。

MSXML2.DOMDocument60Class doc = new MSXML2.DOMDocument60Class();
doc.setProperty("ServerHTTPRequest",true);
doc.setProperty("ProhibitDTD", false); 
doc.async = false;
doc.load(extURL);  

if (doc.parseError.errorCode != 0)
{
 // error  
}
else
{
 // do stuff
}




tor