2014-11-03 136 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可以幫助你做到這一點。