无法从url获取输入流

wlp8pajw  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(608)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

21天前关门了。
改进这个问题
我正试图从url获取BuffereImage,但它引发了一个iioexception。我已经检查了网址,一切正常。
例外情况:

javax.imageio.IIOException: Can't get input stream from URL!
javax.imageio.ImageIO.read(ImageIO.java:1395)
de.visionvenue.statify.objects.Statistics.<init>(Statistics.java:60)
de.visionvenue.statify.commands.SetupCommand.onCommand(SetupCommand.java:67)
de.visionvenue.statify.manager.CommandManager.lambda$0(CommandManager.java:26)
java.lang.Thread.run(Thread.java:748)

下面是我试图获取BuffereImage的代码

URL img = new URL(settings.getGuild().getIconUrl());

BufferedImage image = ImageIO.read(img);

url为

https://cdn.discordapp.com/icons/712313516542918717/8b1e61da607cdd67546ffba653a12604.png
fruv7luv

fruv7luv1#

你可以用 openStream() 中的方法 URL ,如下所示:

String url = settings.getGuild().getIconUrl();
URL img = new URL(url);
BufferedImage image = ImageIO.read(img.openStream());
0yg35tkg

0yg35tkg2#

由于代码片段很少,很难看出原因,因为它适用于其他用户,如注解中所示。
原始答案:
您想改用urlconnection类。
你可以打电话给我 .connect() 以及 .getInputStream() .
如果您需要更复杂的逻辑和更好的api,我建议您使用apachehttpclient(用于任何http调用)或jax-rs客户机,它最适合基于rest的连接,但也可以用于任何其他url连接。后者的优点是存在多个实现(resteasy、jersey、cxf等等)。

相关问题