注意:如果这是一个愚蠢的问题,我很抱歉,我是网络服务器互动的新手,我还没有在网上找到任何有用的信息来帮助解决这个问题。
我正在尝试使用以下代码从Web服务器安装映像:
public static void main(String args[]){
try {
BufferedImage image = ImageIO.read(new URL("http://medialink.atspace.cc/uploads/murphy/apple.jpg"));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
此代码出现以下错误:
javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(Unknown Source)
at MediaLinkMain.main(MediaLinkMain.java:24)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://medialink.atspace.cc/uploads/murphy/apple.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
... 2 more
图片位于我在atspace.com上的子域名中。相同的代码,例如地址为https://www.google.com/images/srpr/logo11w.png
的google徽标图片默认情况下,atspace在其托管设置下有一个名为“目录保护”的设置。在禁用之前我奇怪地无法在地址(http://medialink.atspace.cc/uploads/murphy/apple.jpg)上查看图像,除非我将其添加到网页,然后右键单击+按下的视图图像。
您可能还需要注意使用以下代码:
URL url = new URL(addr + "/list.dat");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
for(String line = reader.readLine(); line != null; line=reader.readLine()){
//Use data here
}
对于与图像完全相同的目录中的文件运行没有问题。
答案 0 :(得分:0)
服务器返回响应代码500.这意味着存在服务器错误。 当您尝试在浏览器中打开该URL时,也可以看到。
必须在服务器端解决问题。
答案 1 :(得分:0)
正如@Henry所说:
必须在服务器端解决问题。
服务器的HTTP 500错误消息显示:
Premature end of script headers: f403.php
基于有根据的猜测,我会说这不是真正的问题,但是你最初会得到一个HTTP 403“Forbidden”返回状态,但403的错误处理程序状态(f403.php
)被破坏,从而导致500错误。
如果真正的问题确实是HTTP 403状态,您可能没有正确设置图像的文件权限。
不确定错误处理程序是你的,还是你的ISP,在后一种情况下你应该告诉他们这个问题。
PS:服务器的500状态页面还列出了最常见的错误情况,您也应该阅读它们。