sto cercando di inviare una HttpWebRequest utilizzando un proxy Tor con la mia applicazione asp.net e ricevo questo messaggio di errore quando si chiama il metodo webresponse.GetResponse():Il server ha commesso una violazione del protocollo. Sezione = ResponseStatusLine quando si utilizza un proxy Tor
The server committed a protocol violation. Section=ResponseStatusLine
ho provato a cercare una soluzione sul web e ho trovato 3 soluzioni principali per questo errore:
Aggiungi al web.config.
<system.net> <settings> <httpWebRequest useUnsafeHeaderParsing="true"/> </settings> </system.net>`
aggiungere la riga:
webRequest.ProtocolVersion = HttpVersion.Version10;
al codice.- Aggiungere la riga
request.ServicePoint.Expect100Continue = false;
al codice.
Ciascuna delle soluzioni elencate non ha modificato nulla sul messaggio di errore.
Ecco il codice di richiesta:
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;
Qualcuno può aiutarmi a trovare una soluzione per questo?
Ho provato ad aggiungere queste righe ma lo stato non è un errore di protocollo ma ServerProtocolViolation. –
In effetti, la risposta è nullo per la mia eccezione :( –
Lo stesso problema qui. La risposta è nullo. – tnktnk