Ho bisogno di leggere una posizione nel mio router, ma ottengo la seguente eccezione - ServerProtocolViolation "Il server ha commesso una violazione del protocollo Sezione = Dettaglio ResponseHeader = CR deve essere seguito da LF"C#: Gestione violazione del protocollo WebClient
Ciò si verifica quando utilizzo la funzione .DownloadString (url). C'è un modo per far sì che WebClient ignori la violazione del protocollo? Ricerche in Google mi dicono che dovrei impostare l'opzione useUnsafeHeaderParsing da qualche parte. Posso farlo attraverso il programma? Qual è il trucco se lo uso?
Edit: Codice Fissaggio -
public Readlog() {
WebClient wc = new WebClient();
string url = @"http://192.168.0.1/setup.cgi?next_file=log.htm&todo=cfg_init";
Console.WriteLine(url);
try {
//wc.Headers.Add("User-Agent", "Mozilla/5.0(Windows; U; Windows NT 5.2; rv:1.9.2) Gecko/20100101 Firefox/3.6");
wc.Credentials = new NetworkCredential("admin", "admin");
//Next line causes exception System.Net.WebException
//Message - "The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF"
//May be I need to use useUnsafeHeaderParsing somehow to avoid that
string result = wc.DownloadString(url);
Console.WriteLine(result);
} catch (WebException we) {
System.Diagnostics.Trace.WriteLine(we.ToString());
}
}
È possibile incollare il codice nella domanda. –