如果收到 HTTP 错误 403,如何在 JavaFx 中从 URL 加载图像

How to load images from URL in JavaFx if recieving HTTP Error 403(如果收到 HTTP 错误 403,如何在 JavaFx 中从 URL 加载图像)

本文介绍了如果收到 HTTP 错误 403,如何在 JavaFx 中从 URL 加载图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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?

解决方案

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.

这篇关于如果收到 HTTP 错误 403,如何在 JavaFx 中从 URL 加载图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如果收到 HTTP 错误 403,如何在 JavaFx 中从 URL 加载图像

基础教程推荐