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;
}
});
リファレンスに説明あるんだろうな・・・。