假装虽易测试不易之微信浏览器

前言

     众所周知,微信项目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/ 插件如图:
                           
安装成功后可在工具选项中看到Default User Agent选项,以下图:
 
                              

获取微信浏览器的 User Agent

                    
 
经笔者的测试, 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下的
                                 
添加新的user agent 
                              
将user agent切换为刚建的GT-9300 进行测试:
                              
本身比较一下 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方式请求该URL
31           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支持小八哥!如有不妥之处,欢迎指点。html

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

相关文章
相关标签/搜索