gpt4 book ai didi

Java:有没有办法在使用 post 上传文件时计算下载吞吐量(在特定时间间隔内)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:11:01 24 4
gpt4 key购买 nike

我对在我的 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 有能力做那样的事情,但我找不到任何似乎有帮助的方法或文档。

有没有人知道如何做到这一点?

最佳答案

请确保您使用 setChunkedStreamingMode(int) 否则响应主体将被缓冲在内存中,直到您尝试关闭连接并取回响应代码,这看起来就像您正在经历的那样。

Android doc on setChunkedStreamingMode

关于Java:有没有办法在使用 post 上传文件时计算下载吞吐量(在特定时间间隔内)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com