java - servlet 无法从 http 服务器读取图像

标签 java image tomcat servlets

我有一张通过 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/

相关文章:

java - 从 win7 移动到 mac,eclipse 缺少 Sun 导入

java - 使用 wsgen 和 maven 从 Java 生成 WSDL 时使用方法参数名称?

css - 由文本表示的图像 - 它叫什么?

python - GUI无法正常工作

tomcat - 如何在 Netbeans 中设置 Tomcat 服务器?

spring - 速度聚类问题

java - 使用 cloudify 时在何处存储凭据

java - Binding.xml 中使用 Moxy 进行的接口(interface)映射不适用于多个接口(interface)?

image - 用opencv比较两张图片的相似度?

java - IncompatibleClassChangeError on Spring WAR deploy