Androidアプリでhttp-postを使用してアップロード(バイナリ/ jpg)の移動平均を計算することに本当に絶望しています。
私は出力ストリームとしてDataOutputStreamを使用しています:
while (true) {
while(bufferSize > 0) {
int transferedBytes = Math.min(bufferSize, packetSize);
outputStream.write(buffer, offset, transferedBytes);
outputStream.flush();
// save transferedBytes as throughput
offset += transferedBytes;
bufferSize -= transferedBytes;
}
if ((available = inputStream.available()) <= 0) {
break;
}
int nBytes = Math.min(avail, bufferSize);
bufferSize = inputStream.read(buffer, 0, nBytes);
offset = 0;
}
この実装ではアップロードは正常に機能していますが、前述の行は 500 ミリ秒未満で実行されます (ファイルは 1 MB)。実際のアップロードは次の行で実行されるようです (約 11000ms かかります)。
int responseCode = connection.getResponseCode();
上記のコードで問題を解決できないようです。私がやりたいことができるアプローチはありますか?Apache の HttpCore にはそのような機能があると聞いたことがありますが、役立つと思われる方法やドキュメントは見つかりませんでした。
これを行う方法を知っている人はいますか?