C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: HTTPのPOST


(過去ログ 96 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■57454 / inTopicNo.1)  HTTPのPOST
  
□投稿者/ robrob (1回)-(2011/02/28(Mon) 10:24:44)

分類:[.NET 全般] 

C#初心者です。よろしくお願いします。

HttpWebRequestでHTTPのPOSTをしています。

chankedで送信したいのですが、うまくいきません。
受信側でデータ部分が受信できていませんでした。
ヘッダーはchunkedにはなっていました。

SendChunkedすると、データを勝手に分割してくれるわけではないのでしょうか?
(調べてみたのですが、.netでそういうことをしている例が見つけられませんでした)

以下、クライアント側で書いたソースです。
static void Main(string[] args)
{
    string url = "http://localhost:2296/Default.sample";

    //データ部分
    string value = "aaa bbb ccc ddd eee …@" +
                  "xxx yyy zzz";

    // リクエストの作成
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    req.Method = "POST";
    req.SendChunked = true;
    req.ContentType = "application/x-www-form-urlencoded";
    req.AllowWriteStreamBuffering = false;

    // ポスト・データの書き込み
    Stream reqStream = req.GetRequestStream();

    System.Text.Encoding encoding = System.Text.Encoding.UTF8;

    byte[] bytes = encoding.GetBytes(value);
    reqStream.Write(bytes, 0, bytes.Length);
    reqStream.Close();

    // レスポンスの取得
    HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse();
    Console.WriteLine("HTTP/{0} {1}", res.ProtocolVersion, res.StatusCode);
    Console.WriteLine(res.Headers);

    Stream resStream = res.GetResponseStream();
    StreamReader sr = new StreamReader(resStream, encoding);
    string html = sr.ReadToEnd();
    Console.WriteLine(html);
    sr.Close();
    resStream.Close();
}

コメントいただけると助かります。
よろしくお願いします。


引用返信 編集キー/
■57455 / inTopicNo.2)  Re[1]: HTTPのPOST
□投稿者/ shu (481回)-(2011/02/28(Mon) 10:33:18)
No57454 (robrob さん) に返信

(1)req.SendChunked = trueとしない場合はうまくいくのでしょうか?
(2)受信側はちゃんと対応されているのでしょうか?

引用返信 編集キー/
■57457 / inTopicNo.3)  Re[2]: HTTPのPOST
□投稿者/ robrob (3回)-(2011/02/28(Mon) 10:39:33)
No57455 (shu さん) に返信
SendChunked、AllowWriteStreamBufferingは
デフォルトのままでContent-Lengthを指定していると
正常に動作しています。

受信側としてはまだ作り込んではいなくて
データが受信できているか確認したいのですが、
デバッガで見てみてもそれらしきデータははいってきてませんでした。

よろしくお願いします。
引用返信 編集キー/
■57479 / inTopicNo.4)  Re[3]: HTTPのPOST
□投稿者/ shu (488回)-(2011/03/01(Tue) 08:32:19)
No57457 (robrob さん) に返信

> 受信側としてはまだ作り込んではいなくて
> データが受信できているか確認したいのですが、
> デバッガで見てみてもそれらしきデータははいってきてませんでした。
受信側がchunk対応してないとデータ見れないと思います。
引用返信 編集キー/
■57483 / inTopicNo.5)  Re[4]: HTTPのPOST
□投稿者/ robrob (4回)-(2011/03/01(Tue) 10:41:55)
No57479 (shu さん) に返信
> 受信側がchunk対応してないとデータ見れないと思います。

コメントありがとうございます。
受信側は IIS 6.0上のASP.netなのですが、
受信側の対応として、例えばどのようなものが
考えられますでしょうか。

よろしくお願いします。

引用返信 編集キー/
■57501 / inTopicNo.6)  Re[5]: HTTPのPOST
□投稿者/ shu (489回)-(2011/03/01(Tue) 22:07:05)
No57483 (robrob さん) に返信
> ■No57479 (shu さん) に返信
>>受信側がchunk対応してないとデータ見れないと思います。
>
> コメントありがとうございます。
> 受信側は IIS 6.0上のASP.netなのですが、
> 受信側の対応として、例えばどのようなものが
> 考えられますでしょうか。
>
> よろしくお願いします。
>
その組み合わせならHttpResponseを使用すれば出来そうな感じですが、
なんかChunkの場合、Closeするとデータがなくなってしまうっぽいのがここに載ってました。

http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/067d7e39-c922-4529-b5a1-ebc32a22409b


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -