求助,android图片上传,及时更新进度问题

流星叶雨 2012-03-29 09:54:04
公司现在正做一个其他网站的android客户端,有点类似腾讯微博,利用官方提供的api接口进行开发,但现在的需求是实现上传照片时,及时更新进度条,SDK中无此功能,所以需要自己写。
我的思路是利用HttpURLConnection建立连接,将图片转化为流,然后传输到服务器,但这样做无法监听到输出流的传输进度,到底要怎么做,才能监听到流的传输进度呢~请高手们帮帮忙,研究三天了,还没解决……泪流满面啊
以下是主要代码:
con=(HttpURLConnection)url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", contentType);
con.setRequestProperty("Authorization", "OAuth "+ token);
con.connect();
以上httpHeader,是官方API提供的格式,没有错误。(如果用严格的自定义表单格式,我也就不纠结进度问题了)
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
InputStream fStream = new FileInputStream(path);
byte[] buffer = new byte[1024];
int length = -1;
while ((length = fStream.read(buffer)) != -1) {

dos.write(buffer);

}
fStream.close();
dos.flush();
dos.close();
con.getResponseCode();
本以为在上面循环中,分批将文件信息读入流中就可以实现进度监听,但实践过后才发现,系统是将整个文件读入流后才传输出去的,也就是说循环结束后才发送数据……现在就是不知道如何在数据传输时监听传输数据……
...全文
235 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星叶雨 2012-03-29
  • 打赏
  • 举报
回复
没人遇到过类似问题么~~~~~
流星叶雨 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
通过线程和Handler共同实现 如果你需要的话 我可以把代码给你发过去
[/Quote]谢谢哈,不用了。如何实现进度更新我知道,现在的问题是,无法获取文件上传的进度……请问一下,利用DataOutputStream将数据传输到服务器时,是否可以及时获取进度呢?
direction917 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
通过线程和Handler共同实现 如果你需要的话 我可以把代码给你发过去
[/Quote]
同意,UI的东西需要开个线程刷新。
流星叶雨 2012-03-29
  • 打赏
  • 举报
回复
谢谢哈,不用了。如何实现进度更新我知道,现在的问题是,无法获取文件上传的进度……请问一下,利用DataOutputStream将数据传输到服务器时,是否可以及时获取进度呢?
qq2495012041 2012-03-29
  • 打赏
  • 举报
回复
通过线程和Handler共同实现 如果你需要的话 我可以把代码给你发过去

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧