此代码应下载网页中指定的图片,但会抛出
线程中的异常" main" javax.net.ssl.SSLProtocolException:handshake alert: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();
}
}
答案 0 :(得分:1)
通常,当您想使用浏览器在某个网站下载图片或文件时,您会向服务器发送Http请求,然后服务器返回响应。浏览器会从响应中读取内容,并通过弹出“另存为”来询问您在何处存储下载内容。窗口。
对于您的程序,您只需打开某个URL的连接,并尝试将此连接信息写入某处。您需要做的是伪造对某个URL发出http请求,捕获响应并提取响应内容以输出到您想要的地方。 HttpClient可以帮助您做到这一点。