How to load images from URL in JavaFx if recieving HTTP Error 403 [duplicate]

岁酱吖の 提交于 2019-11-26 23:41:22

问题


I was trying to help someone out with what I thought was a duplicate and a simple question, but it turned out to be slightly more complicated and I couldn't give a definite answer. Here is the original question.

I tried the code with different images on sites using the https protocol and none worked. I then took some images and added them to sites that use http protocol and they worked.

So, the questions is how do you load an image in a ImageView if the site hosting the image is using https protocol?


回答1:


It’s not an https issue. It seems cdn.discordapp.com requires a User-Agent header in the HTTP request. Furthermore, the site appears to only accept certain formats for User-Agent. It turns out the User-Agent supplied by wget is accepted:

Image createImage(String url)
throws IOException {
    URLConnection conn = new URL(url).openConnection();
    conn.setRequestProperty("User-Agent", "Wget/1.13.4 (linux-gnu)");

    try (InputStream stream = conn.getInputStream()) {
        return new Image(stream);
    }
}

Without a User-Agent header in the request, the site gives an HTTP 403 Forbidden response.



来源:https://stackoverflow.com/questions/43285033/how-to-load-images-from-url-in-javafx-if-recieving-http-error-403

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!