代码之家  ›  专栏  ›  技术社区  ›  HarsH

在Java中调用大型URL

  •  0
  • HarsH  · 技术社区  · 10 年前

    如何在Java中调用大型URL?我正在将scene7图像服务器与java应用程序集成。这里我调用了一个大约10000个字符的URL,它应该会返回一个图像。我可以用什么方法做到这一点?

    我的写作方式是-

    URL oURL= new URL("<*LONG LONG URL - approx. 10k characters*>");
    HttpURLConnection connection = (HttpURLConnection) oURL.openConnection();
    InputStream stream = connection.getInputStream();
    int len;
    byte[] buf = new byte[1024];
    BufferedImage bi = ImageIO.read(stream);
    ImageIO.write(bi,"png",response.getOutputStream());  
    
    while ((len = stream.read(buf)) > 0) {
        outs.write(buf, 0, len);
    }
    
    3 回复  |  直到 5 年前
        1
  •  2
  •   Community miroxlav    7 年前

    你不会得到可靠工作的URL那么长时间。您可以依靠的最长工作时间大约为2000个字符。除此之外,您可能会遇到浏览器或服务器端的限制。(甚至中间代理服务器中的限制)

    你需要“跳出框框思考”。例如:

    • 以POST数据的形式传递一些当前编码在URL中的信息,
    • 以自定义请求头(ewww!!)的形式传递一些信息,或者
    • 想出一种巧妙的方法来编码(或压缩)URL的信息部分。

    所有这些都可能需要对服务器端进行更改。

    参考:

        2
  •  0
  •   ErstwhileIII    10 年前

    虽然HTTP1.1规范没有对URL的长度(大小)进行限制,但您使用的服务器可能会。您应该检查所连接的服务器的文档(在本例中为Adobe的Scene7)

        3
  •  0
  •   Rudi Angela    10 年前

    只需从URL获取图像即可轻松完成:

    URL url = new URL("<extremely long URL>");
    Image image = ImageIO.read(url);
    

    所以我想知道你是不是在问别的问题。