项目前阵子做下载图片  每个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,怎么样能做到建立一次连接,就可以一直下载图片呢?  还是根本没有办法解决呢? 期待高手解答。