我有一个安全的网站,需要在某些网页上显示来自外部非https网址的图片。我想创建一个仅用作代理的servlet,将图像数据传递给页面。一种方法是使用Apache的HttpClient下载图像数据,然后使用IOUtils.copy将数据复制到servlet的响应中。
有更简单的方法吗?
更新:原因是为了避免浏览器警告。
答案 0 :(得分: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);
}
}
如果有人有更好的方法来完成此任务,请发布。
答案 1 :(得分:-1)
如果我理解得很好,你不需要这样的东西,只需返回对图像或音频的引用,或HTML响应中的任何其他内容,浏览器将处理对包含每个内容的服务器的make请求。如果资源可以访问,它们将显示在客户端上。