为什么 String key = DigestUtils.md5Hex(conn.getInputStream())
; 使用后,后面就不能用了,难道必须要两次 HttpURLConnection conn = (HttpURLConnection) url.openConnection()
; 吗?
@Test
public void test() {
try {
URL url = new URL("http://www.baidu.com/img/270_fbe71c0815a61fd81c5b89573a002f38.png");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");// 声明请求方式
conn.setConnectTimeout(6 * 1000);// 设置连接超时
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon;)");
conn.setRequestProperty("Accept-Encoding", "identity");
if (conn.getResponseCode() == 200) {
String key = DigestUtils.md5Hex(conn.getInputStream());
System.out.println(key);
BufferedImage img = ImageIO.read(conn.getInputStream());
int width = img.getWidth();
int height = img.getHeight();
System.out.println(width);
System.out.println(height);
}
} catch (Exception e) {
e.printStackTrace();
}
}
输入流在读取的时候,读取之后的数据就不会再次被读取(有些流可以通过设置Position的位置重复读取,这里不考虑),所以你需要将输入流中的内容读取到一个byte[]缓存起来,以重复使用.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。