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而且图片是错误的这是为什么呢?
Try changing the code to this
The file downloaded without adding UA is actually like this
outputStream.close()
之前,先调用outputStream.flush()
, this method can force all output stream buffers to be written out. What you said before is correct, there is only one step missing.This is what I read using your code.
The target is disabled, add a user-agent attribute to the connection.