我用硒制作了一个程序,可以从网站中提取一些图像的链接,因此在提取链接之后,我想将所有这些图像保存在一个文件夹中,因此我为此写了一些代码
for(int j=0; j<links.size(); j++) {
URL imageURL = new URL(linklist[j]);
BufferedImage saveImage = ImageIO.read(imageURL);
ImageIO.write(saveImage, "png", new File("C:\\Users\\Dumpty\\Desktop\\Output\\logo-forum"+ j +".png"));
}
是的,我正在使用数组来存储网址,并为了确认我用此代码打印了所有链接
for(int k=0; k<links.size(); k++) {
System.out.println(linklist[k]);
}
一切似乎都工作正常,但在提取过程中我面临问题,即时消息 无法从URL获取输入流!错误 我也尝试过 Can't get input stream from URL! Java 但仍然无法正常工作 这是错误信息的完整视图
Exception in thread "main" javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(Unknown Source)
at com.phantomjs.phantomJStest.main(phantomJStest.java:58)
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: https://lh3.googleusercontent.com/f_kendBNnYqba-mMV-3ItGZ2zzbChaaV22nE4uaEW92EWtXPzvFYwDk82AKQ6YlOru4=w1440-h620 2x
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
... 2 more
答案 0 :(得分:1)
我认为这与您的代码无关。如果您完整阅读异常消息,则可以找到解决方法。
检查什么是400 HTTP error is。您的客户提出了一个错误的请求,它看起来像您要查询的网址格式错误,因为其中包含空格。您可以尝试URL encode输入EntityManager
。