jsp: img src
//=======================jsp======防盗链处理开始================================//内容
var contentHtml  = dynamicVo.content;
//秀米静态图片
contentHtml = contentHtml.replaceAll('http://statics.xiumi.us',''+baseURL+'/portal/errcode/errcodeAction!loadImageEx.action?imgUrl=http://statics.xiumi.us');
//秀米动态图片
contentHtml = contentHtml.replaceAll('http://img.xiumi.us',baseURL+'/portal/errcode/errcodeAction!loadImageEx.action?imgUrl=http://img.xiumi.us');
contentHtml = contentHtml.replaceAll('src="//img.xiumi.us','src="${httpsBaseUrl}${baseURL}/portal/errcode/errcodeAction!loadImageEx.action?imgUrl=http://img.xiumi.us');//=======================jsp======防盗链处理结束================================//=======================action======防盗链处理开始================================
/*** 获取网络图片以流的方式输出-代理* * @author Sun Qinghai* @2014-10-27* @version 1.0*/public void loadImageEx(){HttpServletRequest request = ServletActionContext.getRequest();HttpServletResponse response = ServletActionContext.getResponse();OutputStream toClient = null;BufferedInputStream bis = null;HttpURLConnection httpUrl = null;String imgUrl = request.getParameter("imgUrl");// 是否使用代理方式访问外网String isUseProxy = ConfigMgr.getStringCfg("shdz_proxy", "isUseProxy","1");if ("0".equals(isUseProxy)) {try {if(AssertUtil.isEmpty(imgUrl)){return;}response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0);//通过URL获取图片URL url = null;int BUFFER_SIZE = 1024;byte[] buf = new byte[BUFFER_SIZE];int size = 0;url = new URL(imgUrl);httpUrl = (HttpURLConnection) url.openConnection();httpUrl.setConnectTimeout(5000);httpUrl.setReadTimeout(30000);httpUrl.connect();bis = new BufferedInputStream(httpUrl.getInputStream());//得到向客户端输出二进制数据的对象toClient=response.getOutputStream();while ((size = bis.read(buf)) != -1) {//输出数据 toClient.write(buf, 0, size);}toClient.flush();} catch (Exception e) {logger.error("获取图片流失败,imgUrl="+imgUrl,e);}finally{if(toClient!=null){try {toClient.close();} catch (IOException e) {logger.error("获取图片流,关闭response.getOutputStream异常!", e);}}if(bis != null){try {bis.close();} catch (IOException e) {logger.error("获取图片流,关闭BufferedInputStream异常!", e);}}if(httpUrl != null){httpUrl.disconnect();}}} else {try {String proxyUrl = ProxyExUtil.proxyUrlMain;int proxyPort = ProxyExUtil.proxyPortMain;URL server = new URL(imgUrl);Authenticator.setDefault(new ProxyUtil.MyAuthenticator("", ""));ProxyUtil.initProxyEx(proxyUrl, proxyPort, "", "");HttpURLConnection connection = (HttpURLConnection) server.openConnection();//connection.setRequestProperty("Connection", "Keep-Alive");//connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7");connection.setConnectTimeout(5000);connection.setReadTimeout(30000);connection.connect();int BUFFER_SIZE = 1024;byte[] buf = new byte[BUFFER_SIZE];int size = 0;bis = new BufferedInputStream(connection.getInputStream());//得到向客户端输出二进制数据的对象toClient=response.getOutputStream();while ((size = bis.read(buf)) != -1) {//输出数据 toClient.write(buf, 0, size);}toClient.flush();} catch (Exception e) {logger.error("获取图片流失败,imgUrl="+imgUrl,e);}finally{if(toClient!=null){try {toClient.close();} catch (IOException e) {logger.error("获取图片流,关闭response.getOutputStream异常!", e);}}if(bis != null){try {bis.close();} catch (IOException e) {logger.error("获取图片流,关闭BufferedInputStream异常!", e);}}if(httpUrl != null){httpUrl.disconnect();}}}}
//=======================action======防盗链处理结束================================

< END >

程序员NBA

一个有故事的程序员

或者加我微信1414200300一起讨论java技术,有什么问题群里人也可以帮你一起解决

解决新闻H5防盗链问题相关推荐

  1. https访问http加载不出图片_前端解决第三方图片防盗链的办法

    作者:biaochenxuying 转发链接:https://github.com/biaochenxuying/blog/issues/31 问题 笔者网站的图片都是上传到第三方网站上的,比如 简书 ...

  2. 前端解决第三方图片防盗链的办法 - html referrer 访问图片资源 403 问题

    问题 笔者网站的图片都是上传到第三方网站上的,比如 简书.掘金.七牛云上的,但是最近简书和掘金都开启了 防盗链,防止其他网站访问他们网站上的图片了,导致笔者的网站存在他们网站上的图片全挂了. 具体问题 ...

  3. 采用Iframe解决微信图片防盗链‘此图片来自微信公众平台未经允许不可引用’问题

    采用Iframe解决微信图片防盗链'此图片来自微信公众平台未经允许不可引用'问题 最近使用微信公众号爬虫遇到临时链接过期问题,查了各种博客及论坛,好多方法都已经不能用了,目前能用的就是新榜的一个临时链 ...

  4. Typora--终于找到一个能够解决将csdn文章同步到hexo的完美编辑器(解决csdn图片防盗链导致无法直接复制文章的问题)。...

    文章目录 需求 背景 新宠 告诉我,我的名字叫什么?大声点我听不见~ 页面 神奇之处 看得见的优点 如何设置项目根目录 如何显示图片? 于是最终操作流程 个人博客:https://mmmmmm.me ...

  5. get请求图片出现403 防盗链解决方式 no-referrer

    http请求头中有一个referrer字段,用来表示发起http请求的源地址信息 服务器端在拿到这个referrer值后判断请求是否来自本站 若不是则返回403,从而实现图片的防盗链.上面出现403就 ...

  6. Python爬取mn52网站美女图片以及图片防盗链的解决方法

    防盗链原理 http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么 因此所有防盗链方法都是基于这个Referer字段 ...

  7. php获取微信图片访问权限,微信小程序访问图片出现403,图片防盗链的解决办法...

    在写小程序的时候,访问一个网址获取图片,但是显示会出现403(防止盗链)的错误. 总结了一下,有两种方法是可以解决这个问题的:使用images.weserv.nl方案 使用no-referrer方案 ...

  8. 解决CSDN导入md文档时图片显示不出来,出现[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiakLQhy-1628602853830)提示

    解决CSDN导入md文档时图片显示不出来,出现[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiakLQhy-1628602853830)提示 https://blog ...

  9. php解决微信防盗链,PHP如何解决微信文章图片防盗链

    微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章 或者你也可以通过爬虫去抓取微信的文章 但是微信的图片默认是不允许外部调用的 解决微信文章图片防盗链 function ac ...

最新文章

  1. NodeJs:用 nodejs + edge + ejs + c#,打造属于自己的代码生成器
  2. 浅谈WebGIS开放数据(矢量数据)
  3. 玩游戏计算机配置,玩游戏的电脑需要什么配置?
  4. MySQL线程共享内存参数
  5. 第三次学JAVA再学不好就吃翔(part104)--flush和close
  6. 40029错误{“errcode“:40029,“errmsg“:“invalid code, rid: 623bbdcd-3c97f4af-5a2c06d6“}
  7. linux孟庆昌第六章课后题_第六章 参数估计-矩估计:通过课后题理解矩估计
  8. 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法
  9. vs visual stdio 调试 显示指针为数组
  10. 这次都安排上了,零食好物全都 9 块 9 。
  11. 浙江省智慧城市建设改变百姓生活
  12. [How to] ROOT, Backup Flash (MTKDroidTools, Spflashtool, CWM)
  13. 利用oc门或od门实现线与_TTL,CMOS,OC门,OD门的理解
  14. 黑马程序员 _银行管理系统
  15. python十六进制转pcap文件_python处理pcap文件——数据提取
  16. Android之网络-netd分析
  17. 最大网络流的多种解法(洛谷P3376 网络最大流 为例)
  18. C++实现贪吃蛇游戏
  19. 博弈论:帕累托最优与纳什均衡的联系和区别
  20. 内外兼修:程序员的成长之路+软技能 代码之外的生存指南

热门文章

  1. matlab 蔡旭晖,MATLAB基础与应用教程 蔡旭晖等
  2. Android动态权限(兼容6.0以下和魅族手机方案)
  3. (附源码)ssm圆梦小学的英语线上考试系统 毕业设计141505
  4. 《向往的生活》乔杉在男生宿舍躺着抽电子烟
  5. php 仿微信发红包 负数,php仿微信红包分配算法的实现方法
  6. STL容器系列文章:multimap容器
  7. linux tc限制网卡速度,在Linux下用tc限制接口带宽
  8. chatgpt赋能python:Python图片加密:加强图片保密性的利器
  9. Leetcode 741. 摘樱桃 C++
  10. Spring AOP中Pointcut,dvice 和 Advisor三个概念