java 伪装浏览器_[Java教程]伪装虽易测试不易之微信浏览器

[Java教程]伪装虽易测试不易之微信浏览器

0 2014-04-03 20:00:38

前言     众所周知,微信项目html5界面的开发时间会相对较长(为什么这么说就不解释了),以及在微信浏览器内会出现一些无法在web端检测出的问题,笔者有了模拟微信浏览器的想法,google之后,发现有方法来伪装浏览器,也就是利用浏览器的user Agent,(每款浏览器都有自己不同的user Agent ,而且通过user Agent可以判断浏览器版本、所用的操作系统等参数,当用户通过浏览器向服务器发起请求时,请求头(header)中就会包含User Agent,服务器端可以获取该值)。

插件下载:笔者以火狐为例来详解如何模拟微信浏览器:

首先,下载火狐浏览器的User Agent Switcher 插件,下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/user-agent-switcher/ 插件如图:

bc91bb04e6e9c61e24c974e4440db8f2.gif

安装成功后可在工具选项中看到Default User Agent选项,如下图:

bc91bb04e6e9c61e24c974e4440db8f2.gif

获取微信浏览器的 User Agent

bc91bb04e6e9c61e24c974e4440db8f2.gif

经笔者的测试,MicroMessenger 是微信浏览器特定的标识,所以上图中的if语句即可判断请求是否为微信浏览器发起。

注意一下上图中的agent,下文中要用到

搭建微信浏览器笔者用自己的GT-I9300获取的agent为:Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380

打开Default User Agent下的

bc91bb04e6e9c61e24c974e4440db8f2.gif

添加新的user agent

bc91bb04e6e9c61e24c974e4440db8f2.gif

将user agent切换为刚建的GT-9300 进行测试:

bc91bb04e6e9c61e24c974e4440db8f2.gif

自己比较一下www.baidu.com原来的样子,如图算是添加成功了。

模拟微信浏览器请求

这是笔者之前所用的方法,基本作用跟前文差不多,希望对各位有所帮助

1 package sedion.wq.MonitorWechattest; 2 3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpResponse; 5 import org.apache.http.HttpStatus; 6 import org.apache.http.client.HttpClient; 7 import org.apache.http.client.methods.HttpGet; 8 import org.apache.http.impl.client.DefaultHttpClient; 9 import org.apache.http.util.EntityUtils;10 11 /**12 * 模拟微信浏览器请求13 */14 public class MonitorWechatBrowser {15 public static void main(String[] args) {16 String url = "http://www.where is your need.com";17 String userAgent="Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) "+18 "AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380";19 String html = getHttpClientHtml(url, "UTF-8");20 System.out.println(html);21 }22 23 24 /**25 * 根据URL获得所有的html信息26 */27 public static String getHttpClientHtml(String url,String code,String userAgent) {28 String html = null;29 HttpClient httpClient = new DefaultHttpClient();// 创建httpClient对象30 HttpGet httpget = new HttpGet(url);// 以get方式请求该URL31 httpget.setHeader("User-Agent",userAgent );32 try {33 // 得到responce对象34 HttpResponse responce = httpClient.execute(httpget);35 // 返回码36 int returnCode = responce.getStatusLine().getStatusCode();37 // 是200证明正常 其他就不对38 if (returnCode== HttpStatus.SC_OK) {39 // 获得相应实体40 HttpEntity entity = responce.getEntity();41 if (entity != null) {42 html = new String(EntityUtils.toString(entity));// 获得html源代码43 }44 }45 } catch (Exception e) {46 System.out.println("出现出现异常");47 e.printStackTrace();48 } finally {49 httpClient.getConnectionManager().shutdown();50 }51 return html;52 }53 }

总结

本文只是自我的一个总结,如果对你有所帮助是我的荣幸,文章不妥之处希望指正,大神勿喷,请通过留言或关注微信公众帐号codenewbie来支持小八哥!若有不妥之处,欢迎指点。

bc91bb04e6e9c61e24c974e4440db8f2.gif

转帖请注明本文出自小八哥的博客(http://www.cnblogs.com/Codenewbie),请尊重他人的辛勤劳动成果,谢谢! 本文网址:http://www.shaoqun.com/a/87667.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

浏览器

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值