如何直接引用微信的图片链接详解
博客专区 > 浮雲 的博客 > 博客详情
如何直接引用微信的图片链接详解
浮雲 发表于5个月前
如何直接引用微信的图片链接详解
  • 发表于 5个月前
  • 阅读 28
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

欢迎扫码加入Java高知群交流

以微信的一个图片链接为例子:http://mmbiz.qpic.cn/mmbiz_jpg/azXQmS1HA7m80L8HYB1Jfdqicn4LMgfejKp4Nkia6ZyExOJURicRg6HibN7aBcWxSkCTicCkbRIQgprO33Q2TsHFT9Q/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

微信图片做了防盗链处理,如果直接引用图片的src地址,会提示如下信息:

网上查询了一下,有的说是用qq的一个链接能解决:

http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl=xxx

其中imageUrl是需要访问微信图片的链接,之前也测试过这个方法确实可行,但是现在腾讯做了更严格的防盗,所以现在这种方式也不行了。

那有没有更好的办法呢?我们发现,直接copy微信图片的链接到浏览器敲回车是可以正常的展示图片出来的,估计是通过Referer来判断,如果是非本站的Referer会进行拦截,

直接copy到浏览器地址栏是不带有Referer的,对不带Referer的请求貌似没限制,本人猜测的。通过iframe可以请求图片不携带Referer,虽然效率上和体验上没那么好,但是图片这样是可以展示出来的。如下图:

那么讲了这么多,大家最关心的问题还是代码怎么实现,其实很简答,通过js动态生成iframe即可,代码如下:

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
    <head>
    <title>test</title>
	<script src="js/common/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
	</script>
    </head>
    <body>
    <img src="http://mmbiz.qpic.cn/mmbiz_jpg/AiaMTYUYjYNa0mibnn2ay6luBGXPBRSV2ibJic3uGYickID3OUkvKzAC2E0ibVWSNicpykkpUqALFicSiaibgO0XyYWlEhGQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1">
    <script>
	    function showImg(url) {
	        var imgid = Math.random(),frameid = 'frameimg' + imgid;
	        window['img'+imgid] = '<img id="img" src=\''+url+'\' />' +
	                        '<script>window.onload = function(){' +
	                        'parent.document.getElementById(\''+frameid+'\').width=document.getElementById(\'img\').width+\'px\';' +
	                        'parent.document.getElementById(\''+frameid+'\').height=document.getElementById(\'img\').height+\'px\';' +
	                        '}<'+'/script>';
	        return '<iframe id="'+frameid+'" src="javascript:parent[\'img'+imgid+'\'];" frameBorder="0" scrolling="no" width="100%"></iframe>';
	    }
    </script>
    <script type="text/javascript">
    	//$("img").hide();
        var imgs = document.getElementsByTagName('img');
        for(var i=0;i<imgs.length;i++){
            var data_src = $(imgs[i]).attr("src");
            var html = showImg("http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl="+data_src);
            $(imgs[i]).replaceWith(html);
        }
    </script>
    </body>
</html>

 

 

 

 

 

体验上来说确实不是很好,各位大神有什么更好的其它办法可以底下留言交流交流。

 

还有一种简单的方法就是直接在页面的head中添加<meta name="referrer" content="never">,

但是这样所有的请求都不会带referrer,有点自宫的感觉。

 

欢迎扫码加入Java高知群交流

标签: 微信图片
共有 人打赏支持
粉丝 0
博文 7
码字总数 811
×
浮雲
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: