文档章节

如何直接引用微信的图片链接详解

浮雲
 浮雲
发布于 2017/08/31 17:28
字数 603
阅读 32
收藏 0
点赞 0
评论 0

欢迎扫码加入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高知群交流

本文转载自:http://blog.csdn.net/tjcyjd/article/details/74643521

共有 人打赏支持
浮雲
粉丝 0
博文 7
码字总数 811
作品 0
海淀
陈晓通20:一键批量下载公众号文章的图片,还能下载任何网页的图片,超级好用

如何快速搜图找图?几乎每个新媒体从业者,会经常去思考和研究。 却很少人关注,如何快速下载保存图片? 下载图片都是一张一张“另存为图片”的方式来下载,下载完了还要一张一张改属性格式、...

陈晓通 ⋅ 2017/07/13 ⋅ 0

Java垃圾回收(GC)机制详解

如何找到要回收的垃圾 1、引用计数法 2、可达性分析法 三、四种引用状态 1、强引用 2、软引用 3、弱引用 4、虚引用 五、垃圾收集算法 1、标记-清除(Mark-Sweep)算法 2、复制(Copying)算法...

细节探索者 ⋅ 04/26 ⋅ 0

腾讯技术分享:Android版手机QQ的缓存监控与优化实践

本文内容整理自公众号腾讯Bugly,感谢原作者的分享。 1、问题背景 对于Android应用来说,内存向来是比较重要的性能指标。内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验。...

JackJiang2011 ⋅ 04/08 ⋅ 0

微信开放微信内网页开发工具包,助力网页开发

微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK)。 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页上使用微信本身的拍照、选图、语音、位置等基本能力,还可以直...

oschina ⋅ 2015/01/10 ⋅ 30

移动端IM中大规模群消息的推送如何保证效率、实时性?

本文原题为“大规模群消息推送如何保证实时性?”,来自瓜子二手车IM负责人:封宇,本次内容有修订,感谢原作者(原文链接在文末)。 1、编者注 众所周之,群聊是移动端IM的服务端技术难点所...

JackJiang2011 ⋅ 2017/11/20 ⋅ 0

移动端IM中大规模群消息的推送如何保证效率、实时性?

本文原题为“大规模群消息推送如何保证实时性?”,来自瓜子二手车IM负责人:封宇,本次内容有修订,感谢原作者(原文链接在文末)。 1、编者注 众所周之,群聊是移动端IM的服务端技术难点所...

JackJiang- ⋅ 2017/11/20 ⋅ 0

微信开放JS-SDK,助力网页开发[转自微信官方]

微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK)。 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页上使用微信本身的拍照、选图、语音、位置等基本能力,还可以直...

明非_ ⋅ 2014/07/26 ⋅ 14

图片处理工具

Android7.0 完美适配——FileProvider 拍照裁剪全解析 适配 android7.0 中的拍照相册裁剪功能 使用 photoView 实现可点击放大到全屏显示的控件,效果类似于微信朋友圈点开看大图 使用 photoV...

掘金官方 ⋅ 2017/12/11 ⋅ 0

Netty干货分享:京东京麦的生产级TCP网关技术实践总结

1、引言 京东的京麦商家后台2014年构建网关,从HTTP网关发展到TCP网关。在2016年重构完成基于Netty4.x+Protobuf3.x实现对接PC和App上下行通信的高可用、高性能、高稳定的TCP长连接网关。 早期...

JackJiang2011 ⋅ 2017/12/01 ⋅ 0

一起撸个朋友圈吧 - 图片浏览(下)【ViewPager优化】

项目地址:https://github.com/razerdp/FriendCircle (能弱弱的求个star或者fork么QAQ) 上篇链接:http://www.jianshu.com/p/4c5b5d7dc856 下篇链接:http://www.jianshu.com/p/42119b89c2......

WeiChaoFeng ⋅ 2017/12/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mavne settings.xml

<?xml version="1.0" encoding="UTF-8"?> <settings> <localRepository>C:/Users/tuozq/.m2/repository</localRepository> <mirrors> <mirror> <id>a......

Jay丶 ⋅ 4分钟前 ⋅ 0

xuchen-mvc相关类

package org.mvc.framework.utils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ContextPathUtil { public static List<String> splitConte......

徐志 ⋅ 18分钟前 ⋅ 0

JVM CMS和G1 有什么区别

1.CMS适用于要求:不能忍受长时间停顿要求快速响应的应用。 2.当新生代占用达到一定比例的时候,开始出发收集。不区分年轻代和年老代空间。它把堆空间划分为多个大小相等的区域。当进行垃圾收...

qimh ⋅ 20分钟前 ⋅ 0

重入(reentrant或re-entrancy)攻击

可重入 若一个程序或子程序可以「在任意时刻被中断然后操作系统调度执行另外一段代码,这段代码又调用了该子程序不会出错」,则称其为可重入(reentrant或re-entrancy)的。 例子如下: funct...

王坤charlie ⋅ 21分钟前 ⋅ 0

HTTP协议(超文本传送协议)详解

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTT...

一个成都的小点点 ⋅ 22分钟前 ⋅ 0

bootstrap easyui

bootstrap easyui

霜叶情 ⋅ 22分钟前 ⋅ 0

数据结构与算法之双向循环链表实践

一、双向循环链表实践 1.题目1,要求实现用户输入一个数,使得26个字母的排列发生变化 例如用户输入3,输出结果:DEFGHIJKLMNOPQRSTUVWXYZABC 例如用户输入-3,输出结果:XYZABCDEFGHIJKLMN...

aibinxiao ⋅ 26分钟前 ⋅ 0

架构设计之初体验,送给准备进阶架构的朋友(个人总结)

1 基本概念和目的 架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有...

James- ⋅ 26分钟前 ⋅ 0

获取jar中的资源文件途径

如果资源文件处于jar中而非当前项目中,可以通过如下方式加载 String path = Thread.currentThread().getConctextClassLoader().getResource("资源文件路径").getFile();...

最佳的时间就是现在 ⋅ 29分钟前 ⋅ 0

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

阿里云云栖社区 ⋅ 32分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部