web-dev-qa-db-ja.com

サーバーはプロトコル違反をコミットしました。 Section = ResponseHeader Detail = CRの後に、WinFormsでLFが続く必要がありますか?

WebClient/HttpWebRequestを使用して、サーバーからデータをダウンロードしようとしています。そのために次のコードを使用します。

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

サーバーは私のページが私のルーターの構成にあります。ブラウザからは正常に動作しますが、コードを使用してダウンロードすると、メッセージとともにWebExceptionがスローされます

サーバーはプロトコル違反をコミットしました。 Section = ResponseHeader Detail = CRの後に、WinFormsでLFが続く必要がありますか?.

ASP.netを使用していて、web.configに以下を追加する場合に使用するソリューションを見つけました。

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

ただし、WinFormsアプリを作成しているため、これは機能しません。この問題を解決するための代替手段はありますか?

40
msbg

まず、app.configファイルの追加は、他のファイルを追加するのと同じくらい簡単です。 方法:C#プロジェクトにアプリケーション構成ファイルを追加する

その後、上記のコードスニペットを新しいapp.configに追加するだけです。

App.configの必要性を回避するコードを介してそのプロパティを設定する別の方法は here または here で示されています。

24
shriek