java - HTTPS 的代理 Servlet

标签 java

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

有没有更简单的方法?

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

最佳答案

这是我最终使用的:

    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);
        }
    }

如果有人有更好的方法来完成这个,请发布。

关于java - HTTPS 的代理 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867012/

相关文章:

java - 标题与 Vaadin 图表 2 中的图例重叠

java - 如何解码此 XML 文件结构

java - 需要使用文件系统的帮助

Java汽车动画平滑和走曲线

java - 在 Java 中通过 POST 发送 JSON 数据

java - "unlimited"系统下打开文件过多异常

java 访问修饰符 : no-modifier vs "default"

java - 在Java中,同一个类可能有两个或多个文件吗?

java - 如何对迭代器中的 getter 方法的值求和?

Java在简单方程式中重复小数