Сервер совершил нарушение протокола. Section=ResponseStatusLine при использовании прокси-сервера tor

Я пытаюсь отправить httpwebrequest с помощью прокси-сервера tor с моим приложением asp.net, и я получаю это сообщение об ошибке при вызове метода webresponse.GetResponse ():

The server committed a protocol violation. Section=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;

Может ли кто-нибудь помочь мне найти решение для этого?

8
задан abatishchev 19 August 2014 в 17:48
поделиться