【发布时间】:2013-06-05 13:19:49
【问题描述】:
我正在尝试将一些字节上传到服务器 15 秒。我编写了以下代码将字节写入输出流:
long uploadedBytes=0;
ByteArrayInputStream byteArrayInputStream=null;
OutputStream outputStream=null;
try {
byte[] randomData=generateBinData(5*1024);
byte[] bytes = new byte[(int) 1024 * 5];
URL url = new URL(urls[0]);
HttpURLConnection connection =
(HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
outputStream = connection.getOutputStream();
byteArrayInputStream = new ByteArrayInputStream(randomData);
long startTime=System.currentTimeMillis();
while(byteArrayInputStream.read(bytes) > 0
&& timeDiff < 15000) {
outputStream.write(bytes, 0, bytes.length);
uploadedBytes += bytes.length;
byteArrayInputStream = new ByteArrayInputStream(randomData);
timeDiff = System.currentTimeMillis() - startTime;
int progress=(int)(timeDiff *100 / 15000);
publishProgress(progress);
}
但是上面的上传进度非常快,显示几秒钟内上传了大量的字节。这不是根据我的 2g 移动网络连接。 例如它显示: uploadBytes =9850880 和时间差(timeDiff)= 3 秒。
如果我运行相同的代码 15 秒,它会终止整个应用程序。 请帮我找出我哪里出错了。 谢谢...等待回复
【问题讨论】:
标签: java android upload network-programming