2014-11-03 100 views
0

此代码应下载网页指定的图像,但将在线程“主要” javax.net.ssl.SSLProtocolException图片下载Java中

例外:握手警报:unrecognized_name

请帮助我。我使用NetBeans 7.1.1进行了测试。

import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.URL; 

public class Download { 

    public static void main(final String[] args) throws Exception { 
     String fileName = "Google_logo.png"; 
     String website = "https://img3.wikia.nocookie.net/cb20100520131746/logopedia/images/5/5c/" + fileName; 
     System.out.println("Downloading File From: " + website); 
     URL url = new URL(website); 
     InputStream inputStream = url.openStream(); 
     OutputStream outputStream = new FileOutputStream(fileName); 
     byte[] buffer = new byte[2048]; 
     int length; 
     while ((length = inputStream.read(buffer)) != -1) { 
      System.out.println("Buuffer Read of length :" + length); 
      outputStream.write(buffer, 0, length); 
     } 
     inputStream.close(); 
     outputStream.close(); 
    } 
} 

回答

1

通常,当你要下载图片或使用浏览一些网站的文件时,发送HTTP请求到服务器,服务器返回的响应。浏览器从响应中读取内容,并弹出“另存为”窗口,询问您在何处存储下载内容。

对于您的程序,您只需打开某个URL的连接并尝试将此连接信息写入某处。你需要做的是伪造一个http请求到特定的URL,捕获响应并提取响应内容输出到你想要的地方。 HttpClient可以帮助你做到这一点。