【发布时间】:2016-02-16 10:37:34
【问题描述】:
我有以下从 url 读取图像的简单程序。
public class TestWebScrapper {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
URL imageUrl;
try {
imageUrl = new URL("https://assets.boxdice.com.au/bj_corporate/listings/1751/4618116b.jpg");
HttpURLConnection connection = (HttpURLConnection) imageUrl.openConnection();
connection.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0");
BufferedImage propertImage = ImageIO.read(imageUrl);
} catch (Exception ex) {
Logger.getLogger(TestWebScrapper.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我遇到的问题是这给出了一个例外
无法从 URL 获取输入流!
带有消息:
收到致命警报:internal_error
我尝试添加用户代理,但问题仍然存在。该链接在浏览器上运行良好。 此错误仅针对来自此 url 的图像,但有人知道如何解决此问题吗?
【问题讨论】:
-
您是否打算将
connection传递给ImageIO.read,因为该对象具有已编辑的 uer 代理? -
http vs https 或 HttpUrlConnection vs HttsUrlConnection
-
@simar 我必须使用 HttpsUrlConnection 从 https 网络服务器获取图像吗?如果是这样,我需要检查网址是否为 https 或 http?还是得到处理?
-
不需要,取决于网络服务器的配置方式。但如果访问 https 则使用 HttpsUrlConnection。
-
图片您正在尝试从 assets.boxdice.com.au 下载,可通过 http 和 https 获得。但是,如果网站配置为仅使用 https,您可能会遇到错误。
标签: java netbeans user-agent