Le serveur a commis une violation du protocole. Section=responsable détail=CR doit être suivi de LF, dans WinForms?

j'essaie d'utiliser un WebClient / HttpWebRequest pour télécharger des données à partir d'un serveur. J'utilise le code suivant:

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);

le serveur est ma page est dans la configuration de mon routeur. Il fonctionne très bien à partir d'un navigateur, mais quand téléchargé en utilisant mon code il lance un WebException avec le message

le serveur a commis une violation de protocole. Section=responsable détail=CR doit être suivi de LF, dans WinForms?.

j'ai trouvé une solution que l'on utiliserait s'ils utilisaient ASP.net, ajoutant ce qui suit À web.config:

<configuration> 
    <system.net> 
        <settings> 
            <httpWebRequest useUnsafeHeaderParsing="true" /> 
        </settings> 
    </system.net> 
</configuration>

Cependant, je fais une application WinForms si cela ne fonctionne pas pour moi. Quelles sont les solutions de rechange pour régler ce problème?

34
demandé sur Abhishek 2013-05-26 16:43:29

1 réponses

tout d'abord, ajouter une application.fichier de configuration est tout aussi facile que d'ajouter n'importe quel autre fichier comment: ajouter un fichier de Configuration D'Application à un projet C#

alors vous avez juste à ajouter ce code snippet ci-dessus à cette nouvelle application.config.

une autre façon de définir cette propriété via le code, en évitant la nécessité d'une application.la configuration est affichée ici ou ici.

16
répondu shriek 2018-05-29 20:14:59