项目前阵子做下载图片 每个URL是一个图片的地址 下载代码如下
private InputStream getCateoryXml(String str) throws IOException {
// TODO Auto-generated method stub URL url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30 * 1000);
conn.setReadTimeout(60 * 1000);
conn.setDoInput(true);// 允许输入
conn.setDoOutput(true);// 允许输出
conn.setUseCaches(false);// 不使用Cache
conn.setRequestMethod("GET");
// conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.connect(); if (conn.getResponseCode() != 200) {
throw new RuntimeException("request exception");
}
InputStream inputStream = conn.getInputStream();
return inputStream;
}这样的话是可以完成功能,但是下载N多图片的时候,需要建立多次连接,非常的耗时,开启新线程的话,也一样,本质问题还是多次建立连接造成的时间浪费。
今天看了下HTTP协议,可以保持长连接,但是没弄清楚,每个URL产生一个HttpURLConnection,怎么样能做到建立一次连接,就可以一直下载图片呢? 还是根本没有办法解决呢? 期待高手解答。
private InputStream getCateoryXml(String str) throws IOException {
// TODO Auto-generated method stub URL url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30 * 1000);
conn.setReadTimeout(60 * 1000);
conn.setDoInput(true);// 允许输入
conn.setDoOutput(true);// 允许输出
conn.setUseCaches(false);// 不使用Cache
conn.setRequestMethod("GET");
// conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.connect(); if (conn.getResponseCode() != 200) {
throw new RuntimeException("request exception");
}
InputStream inputStream = conn.getInputStream();
return inputStream;
}这样的话是可以完成功能,但是下载N多图片的时候,需要建立多次连接,非常的耗时,开启新线程的话,也一样,本质问题还是多次建立连接造成的时间浪费。
今天看了下HTTP协议,可以保持长连接,但是没弄清楚,每个URL产生一个HttpURLConnection,怎么样能做到建立一次连接,就可以一直下载图片呢? 还是根本没有办法解决呢? 期待高手解答。
解决方案 »
- android中图片的合并
- 求android injectso例子,越简单越好
- 最近的一个面试题
- 如何读取android手机收到的彩信,将图片显示到PC机
- sipdroid源代码如何使用以及是否需要将JNI中的文件打包为动态库
- 请教,行业前景展望,android开发和IPHONE开发
- 请各位达人帮帮忙(关于平台搭建)
- 网易新闻的左右滑动切换页签效果
- 使用 NDK android.mk ,LOCAL_LDLIBS 找不到库,怎么解决??
- Android中使用Socket上传图片遇到的问题?
- 我想调用录音机,这个在虚拟机上可以正常运行,为什么到真机上就不行了?
- Content Provider里面的getType方法什么时候被调用
建议用socket,这是长连接,服务端监听端口,双方通讯就可。
比如<img ...>图片数据</img>
.
.
.
<img ...>图片数据</img>
然后客户端获取解析