我真的对在我的 android 应用程序中使用 http-post 计算上传(二进制/jpg)的移动平均值感到绝望。
我使用 DataOutputStream 作为 ouputStream:
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 毫秒(文件为 1MB)。真正的上传似乎在以下行中执行(大约需要 11000 毫秒):
int responseCode = connection.getResponseCode();
看来,我无法用上面的代码解决我的问题。有什么方法可以做我想做的吗?我听说 Apaches HttpCore 有能力做这样的事情,但我找不到任何似乎有帮助的方法或文档。
有谁知道如何做到这一点?