- - PR -
Transfer-Encoding=[chunked]の時、Premature EOFでIOExceptionとなる
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-03 12:24
HttpURLConnectionを用いてサイトと接続し、HttpURLConnection#getInputStream();で取得したストリームデータをwhileループで出力しています。この時、レスポンスヘッダがTransfer-Encoding=[chunked]の時に、InputStream#read();の箇所でIOExceptionが発生してしまいます。エラーメッセージには「java.io.IOException: Premature EOF」とあり、EOFが早すぎる?という意味だそうです。
調べると、HTTP1.1よりこのchunkモードでの通信が採用されていて、試しにHTTPのバージョンを1.0(chunkが存在していないバージョン)で同様の処理を行うと正常に処理できました。 バージョンをHTTP1.1にし、且つTransfer-Encoding=[chunked]の状態を変更することなく(1.0に変えたり、Transfer-Encodingを変更せずに)、クライアント側のロジックで、Premature EOFの問題を解決することはできますでしょうか? ご意見の程よろしくお願いいたします。 以上です。 OS WINXP Eclipse 3.1.1 Tomcat 5.5 | ||||
|
投稿日時: 2006-07-03 21:41
それはできると思いますが、、そもそもTransfer-Encoding=chunkedってのを 分かってるのでしょうか。 chunkedは以下に簡単にあります。 http://www.tohoho-web.com/ex/http.htm HTTPボディがchunkedなので、HTTP/1.0のつもりでいると、 データが解釈できないのでしょう。 |
1