我有一张通过 http url 从远程服务器传来的图片。我想对此做一些图像分析,所以我想在我的服务器端 java 代码中读取图像内容。此代码在 tomcat 服务器内部运行。
public ImageTrimmer(String urlPath) {
imageSrc = urlPath;
try {
Image img = ImageIO.read(new URL(imageSrc)); // throws the exception
img.getRGB(0, 0);
} catch (IOException e) {
throw new RuntimeException( "Problem reading image", e );
}
}
图像的 url 可以是返回图像的任何有效 url。一个示例 url 路径是 - “http://build.ford.com/dig/Ford/E-Series Cargo Van/2012/BP3TT-FULL-EXT/Image[|Ford|E-Series Cargo Van|2012|1| 1.|.E1E..YZ...89E.BS1.CB1.]/EXT/1/vehicle.png”。
这是我在阅读图片时遇到的异常
java.io.IOException: Server returned HTTP response code: 505 for URL: http://build.ford.com/dig/Ford/E-Series Cargo Van/2012/BP3TT-FULL-EXT/Image[|Ford|E-Series Cargo Van|2012|1|1.|.E1E..YZ...89E.BS1.CB1.]/EXT/1/vehicle.png
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at java.net.URL.openStream(URL.java:1010)
at javax.imageio.ImageIO.read(ImageIO.java:1367)
任何有助于成功阅读此图像的帮助都将非常有帮助。
最佳答案
在浏览器中输入时,浏览器会帮助您完成一些工作。为了访问它,首先尝试在您的代码中对 url 进行编码(以转义某些特定字符,如/,空白)。一个可选的 API 是,
URLEncoder.encode(arg0)
关于java - servlet 无法从 http 服务器读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9272778/