public class Client {
public static void main(String[] args) {
try {
URL url = new URL("http://www.iteye.com/upload/logo/user/1177132/a7159cc1-b11a-3122-9a9d-5183d6c6ba99.jpg");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5 * 1000);
InputStream inputStream = connection.getInputStream();
byte[] tmp = new byte[1024];
int length;
OutputStream outputStream = new FileOutputStream("E:" + File.separator + "eee.jpg");
while ((length = inputStream.read(tmp)) != -1) {
outputStream.write(tmp, 0, length);
}
outputStream.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
图片URL:
http://www.iteye.com/upload/l...
图片有3K,但我下载后图片只有2K而且图片是错误的这是为什么呢?
你把代码改成这样试试
不添加UA下载下来的文件其实是这样的
outputStream.close()
之前,先调用outputStream.flush()
,这个方法能强制把输出流缓冲全部写出来。你前边的都没错,就差一步了。这是我用你的代码读到的东西。
目标禁止了,为connection添加一个user-agent属性吧。