2

我有一个安全站点,需要在某些页面上显示来自外部非 https URL 的图像。我想创建一个仅用作将图像数据传递给页面的代理的 servlet。一种方法是使用 Apache 的 HttpClient 下载图像数据,然后使用 IOUtils.copy 将数据复制到 servlet 的响应中。

有没有更简单的方法?

更新:这样做的原因是为了避免浏览器警告。

4

2 回答 2

0

这就是我最终使用的:

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        try {
            String url = request.getParameter("url");
            HttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            InputStream inputStream = httpEntity.getContent();
            response.setContentType("image/jpeg");
            IOUtils.copy(inputStream, response.getOutputStream());
        } catch (Exception e) {
            AppLogger.log(e);
        }
    }

如果有人有更好的方法来实现这一点,请发布。

于 2012-06-04T03:07:14.567 回答
-1

如果我理解得很好,您不需要这样的东西,只需返回对图像或音频的引用,或者您的 HTML 响应中的任何其他内容,浏览器就会处理向包含每个资源的服务器发出请求,如果它们可以访问,它们将显示在客户端上。

于 2012-06-03T00:36:51.733 回答