【症状】どのような症状、現象か?
HTTPポスト/簡易POSTを用いてHTTP通信をした場合、その応答内容がContent-Lengthを含まない(Chunkedになっている)場合、短時間で受信待ちを解除してしまい、Bodyを受け取らずにヘッダしか取得できない場合がある。
(ポスト系以外は未確認ですが、多分GETも一緒。)
【再現方法】サンプルソース、再現手順など
なでしこ側は
---
パラメータは「id=userid&password=password」
ヘッダは「Content-Type: application/x-www-form-urlencoded」
「
http://*****/login.cfm」へヘッダとパラメータをHTTPポスト
それを言う
---
だけですが、どちらかというと、重要なのはサーバの動作です。
・http/1.1で、Content-Lengthを含ままず、Transfer-Encodingがchunkedになっている。
・受信の途中、ヘッダの受信が終わった以降で、送信されてこない空きの時間が1秒以上ある。
【要望】どのような解決が望ましいか?
Content-Lengthを含まない場合でも、Transfer-Encoding: Chunkedを理解してデータ長による受信待ちしてほしい。
http 1.1で、長さを知る方法が何もない場合は、今の動作で良いと思います(プロトコル違反な気が)
(http 1.0なら、Socketがクローズされるまでがデータで区別がつきます。)
HTTP/1.1のプロトコルを理解できないなら、HTTP/1.1未対応として、HTTP/1.0で要求するべきなのかもしれません(RFC上、chunkedの対応はMUST項目。)
【バージョン】確認したバージョン
1.5334
【その他】