当前位置: 首页 > 知识库问答 >
问题:

Java-无法通过url读取图像

邹玄裳
2023-03-14

我一直在到处寻找答案,但没有任何帮助。

这是我的代码:

BufferedImage img1 = ImageIO.read(new File(dir1));
URL url = new URL(image_srcURL);
BufferedImage img2 = 
ImageIO.read(url.openStream());

当我试图读取URL时,下面出现了一个异常。

任何帮助都会很好。我正在尝试读取url内部的图像,并将其与现有文件进行比较。这里没有任何问题给出答案。

编辑:

我尝试在命令行“keytool-list-keystore keystore”中输入,但它只显示给我TrustedCertentries。还没有解决方案奏效。

共有1个答案

高墨一
2023-03-14

下面是我如何实现它的一个例子。代码将响应体读入awtbufferedimage中,然后写入.jpg文件,然后将该文件读回字节数组,然后删除该文件。我肯定我找到了帮助,但我手边没有答案。我会试着找到它,这样我就可以引用了。希望对你有帮助!

**按照@SrikanthKumar在他的回答中提到的编辑,您还需要获得证书并将其添加到JVM的信任库中。您可以通过浏览器通过任何浏览器获得这一点,您有证书探索工具。

import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import java.nio.file.Files;
import java.util.Base64;
import java.util.UUID;
import javax.imageio.ImageIO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public String getImage(String productNumber) throws EcomWebException {

try {
    BufferedImage image = ImageIO.read(url);
    File file = new File(guid.toString() + ".jpg");
    ImageIO.write(image, "jpg", file);
    String base64ImageString = Base64.getEncoder().encodeToString(Files.readAllBytes(file.toPath()));
    file.delete();
    return base64ImageString;
} catch (Exception e) {
    throw new EcomWebException(IMAGE_NOT_FOUND_MESSAGE + productNumber, e);
}
}
 类似资料:
  • 遇到了一个奇怪的问题,试图通过模型内的url从这里下载任何照片->https://jsonplaceholder.typicode.com/photos,例如“https://via.placeholder.com/150/92c952”,但得到错误: 另外,如果我试图从其他链接加载图像,例如->https://avatars.mds.yandex.net/get-pdb/1088712/8b19

  • 问题内容: 这就是我到目前为止 我的代码存在问题,返回null。 当我打印对象的内容时,我得到的是标题部分 后面跟着一个空行以及许多带有不同字符的行,例如。 再次我的问题是函数返回null。 提前致谢。 问题答案: 为什么不想使用简单的HTTP URL从主机获取图像?我的意思是: 如果要使用普通套接字,则必须解析http响应并手动从http答复中提取数据:读/跳过标头,读取二进制数据并将其传递给(

  • 我在我的RPi上托管了一个webservice,我有一个。png图像,我可以从android设备通过网络访问。这是我获取该图像的代码: 在这里,当单击按钮时(在Oncreate事件中),我会将图像显示到图像视图中: 我的用户清单中有互联网,但每当我运行应用程序时,它就会强制关闭。我觉得这和我的听众有关,但我无法解决。谢谢你的帮助,因为我非常困惑。(虽然我有java desktop的经验,但我对An

  • 问题内容: 我正在尝试用Java读取URL,只要URL正在浏览器中加载,它就可以工作。 但是,如果只是在浏览器中停止运行而在尝试在浏览器中打开该页面时未加载该页面,则Java应用程序会挂起,如果有足够的时间,它可能会永远等待。如果加载时间超过20秒而我停止了应用程序,如何设置超时时间? 我正在使用网址 这是代码的相关部分: 问题答案: 我不知道您如何使用URL类。如果发布摘要会更好。但是这是一种对

  • 我首先将一幅图像保存到Google云存储中,同时将mime类型设置为“image/png”,并以文件结尾随机命名,例如“.png”。文件似乎存储正确。我可以在数据存储查看器中看到它们: 但如果我尝试用com再次加载它。谷歌。阿彭金。api。图像。ImagesService和调用ImagesService。getServigUrl(),它抛出错误: 所以这似乎认为这不是一个图像。但为什么呢?它有mi

  • 问题内容: 这是我的客户代码 这是服务器代码 但是即使我这样修改它,我也不会在fromClient中接收任何内容 我没有结果 问题答案: 客户端需要调用或导致将缓冲的数据推送到服务器。(如果您打算写入更多数据,请刷新,否则关闭。) 服务器端需要在实例上使用readInt读取数据。使用DataOutputStream写入的数据应使用DataInputStream读取。 最后,摆脱BufferedRe