I am trying to use a WebClient / HttpWebRequest to download some data from a server. I use the following code to do so:
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("admin", "password");
Stream datastream = client.OpenRead("http://routerlogin.com/cgi-bin/CF_logs.html");
StreamReader reader = new StreamReader(datastream);
The server is my page is in my router's configuration. It works fine from a browser, but when downloaded using my code it throws a WebException
with the message
The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF, In WinForms?.
I have found a solution one would use if they were using ASP.net, adding the following to web.config:
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>
However, I am making a WinForms app so this won't work for me. What alternatives are there to fix this problem?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…