dポイントプレゼントキャンペーン実施中!

.net のWebClientを使用して文字列をアップロードしているのですが、上手くいかず以下のようなエラーが返されます。

エラー内容:「サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=ヘッダー名が無効です。」

[環境]
VS2005 VB.NET

[ロジック]
Using wc As New System.Net.WebClient

wc.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
wc.Credentials = New System.Net.NetworkCredential(user,pass)
Dim url As New System.Uri("http://指定のURL")
Dim returnvalue As String = wc.UploadString(url, "POST", "送信文字列")

End Using

補足ですが、通信にはベーシック認証を使用していますが、ユーザー・パスは問題ありません。
UploadStringAsyncを使用すれば文字送信はできています。
通信結果をサーバーより取得するためUploadStringを使用しています。

どなたか解決策をご存知の方はご教授いただきたいと思います。
宜しくお願い致します。

A 回答 (2件)

エラー内容から、サーバー側が悪いと思います。

と思ってググったら参考になりそうなのがありましたよ。

http://www.atmarkit.co.jp/fdotnet/dotnettips/997 …

なお、ASP.NET のサイトを作成し、上記ロジックのコードで通信したら、特に問題なくやりとりできましたので、ほぼこれが原因でしょう。Response ヘッダ名におかしいのがあるか、改行コードの問題と思います。
    • good
    • 0

未検証。


「サーバーによって」プロトコル違反って書いてあるから
クライアント側コードを見るより、サーバから来るデータをWireSharkとかで見られたほうがいいのかも。
    • good
    • 0
この回答へのお礼

ありがとうございます。
サーバー側を見てみます。

お礼日時:2011/06/02 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!