2010年6月27日日曜日

Httpclient MultipartRequestでContent-Lengthヘッダが消えた件

原因はInputStreamBodyらしい。
InputStreamBodyのgetContentLength()は必ず-1を返却しているようなので
オーバーライドしてファイルサイズを返却するように修正。

修正前:
entity.addPart("file", new InputStreamBody(stream, "application/octet-stream", fileName) ;

修正後:
entity.addPart("file", new InputStreamBody(stream, "application/octet-stream", fileName) {
@Override
public long getContentLength() {
return fileSize;
}
});


リファレンスに説明あるんだろうな・・・。

0 件のコメント:

コメントを投稿