Windows Phone真机抓包并分析应用程序的网络通讯(Android、iPhone也适用)
学习WindowsPhone开发已经有一段时间了,喜欢装各种软件并思考他们是如何实现的,最近用了一个软件 “吾得地图生活服务助手”,功能挺多的,它用到了一些Google和MapABC的API,我想看看它到底用到了哪些API,于是想到了下面这个方法。
首先电脑要有无线网卡,手机支持WiFi,然后用Windows 7 系统的netsh命令创建一个虚拟WiFi,手机连接这个WiFi上网,在电脑用WireShark抓取虚拟WiFi的数据包。
详细步骤:
在Windows 7系统下,到C:\Windows\System32目录下找到cmd.exe,在cmd.exe右击“以管理员身份运行”(直接运行没有管理员权限,命令执行会失败)。
输入 netsh wlan create hostednetwork mode=allow ssid=cmd key=12345678 回车,创建一个虚拟WiFi,ssid为WiFi的名字,key为密码
继续输入 netsh wlan start hostednetwork 启动虚拟WiFi。
到网络连接里查看,已经创建成功。
然后在能上网的网络连接上右击,选择属性->共享,给虚拟WiFi启用共享。
如果是WindowsXP系统,没有netsh wlan命令,可以用另一个软件Connectify来创建虚拟WiFi,其他步骤都是一样的。
用WP手机搜索WiFi并连接这个虚拟WiFi热点,手机就可以通过电脑的虚拟WiFi上网了。
电脑上启动WireShark抓包软件,选择 "Capture"->"Options",注意选择虚拟的WiFi网络连接,
ip地址是192.168.2.1的是虚拟WiFi网络连接,取消勾选"Capture packets in promiscuous mode",按下图设置
点击"Start"按钮开始抓包,手机上并运行”吾得地图生活服务助手“,查看WireShark,有HTTP/1.1 200 OK是http请求成功的数据包。
右击这条数据选择”Follow TCP Stream“查看数据包详细信息,如下图
这条数据是Google天气预报的api
http://www.google.com/ig/api?hl=zh-cn&weather=nanjing
其他功能是如何实现的都可以抓出来,下面是我抓取的其它功能的api
地点提示:
http://search1.mapabc.com/sisserver?highLight=false&resType=json&enc=utf-8&config=TIP&ver=2.0&searchName=%E7%BF%A0%E5%B1%8F%E6%B8%85&cityCode=025&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
字段说明
%E7%BF%A0%E5%B1%8F%E6%B8%85 翠屏清的url编码
searchName 搜索关键字
cityCode 城市区号, 搜全国为total
number 返回数量
batch 第几页
a_k MapABC的地图API Key
地名转换为经纬度
http://search1.mapabc.com/sisserver?highLight=false&srctype=DIBIAO:10000%2BPOI&config=BESN&searchName=%E5%8F%8B%E8%B0%8A%E5%AE%BE%E9%A6%86&cityCode=total&searchType=&number=10&batch=1&a_k=fd9451c6128710ffbc37d9481b002ff36665d039ee0febfd85df0ad471ebcf9204192849326faba3&resType=JSON&enc=utf-8&sr=0
地图图片取图
http://emap2.is.autonavi.com/appmaptile?x=847&y=416&z=10
实时路况取图
http://tm.mapabc.com/trafficengine/mapabc/traffictile?x=1699&y=831&zoom=6
公交换乘
http://search1.mapabc.com/sisserver?highLight=false&srctype=BUS:20%2BDIBIAO%2BPOI&config=BESN&cityCode=025&searchType=&number=20&batch=1&resType=JSON&enc=utf-8&sr=0&searchName=%E7%BF%A0%E5%B1%8F%E6%B8%85%E5%8D%8E%E5%9B%AD&a_k=fd9451c6128710ffbc37d9481b002ff36665d039ee0febfd85df0ad471ebcf9204192849326faba3
http://search1.mapabc.com/sisserver?highLight=false&config=SPAS&ver=2.0&resType=json&enc=utf-8&spatialXml=%3Cspatial_request%20method=%22searchPoint%22%3E%3Cx%3E118.7757325%3C/x%3E%3Cy%3E32.012667654105%3C/y%3E%3Cxs%3E%3C/xs%3E%3Cys%3E%3C/ys%3E%3CpoiNumber%3E1%3C/poiNumber%3E%3Crange%3E1%3C/range%3E%3Cpattern%3E1%3C/pattern%3E%3CroadLevel%3E0%3C/roadLevel%3E%3Cexkey%3E%3C/exkey%3E%3C/spatial_request%3E&a_k=fd9451c6128710ffbc37d9481b002ff36665d039ee0febfd85df0ad471ebcf9204192849326faba3
http://search1.mapabc.com/sisserver?highLight=false&config=BR&ver=2.0&x1=118.78394&y1=31.944741&x2=118.767525&y2=32.080544&cityCode=025&per=150&routeType=0&resType=json&enc=utf-8&a_k=fd9451c6128710ffbc37d9481b002ff36665d039ee0febfd85df0ad471ebcf9204192849326faba3
0 最快捷
1 最经济
2 最少换乘
3 最少步行
4 最舒适
下面这个是搜搜地图的换乘api
http://map.soso.com/?qt=bus&cond=0&&start=1$$$$118.78394%2C31.944741$$$$$$&dest=1$$$$118.767525%2C32.080544$$$$$$&nosub=0&mid=0&output=json
驾车路线查询
http://search1.mapabc.com/sisserver?highLight=false&resType=json&enc=utf-8&&config=R&ver=2.0&x1=118.7835921&y1=31.9449493&x2=118.7754104&y2=31.9925792&cityCode=025&per=150&avoidanceType=0&routeType=0&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
公交线路名称
http://search1.mapabc.com/sisserver?highLight=false&resType=json&enc=utf-8&&config=R&ver=2.0&x1=118.7835921&y1=31.9449493&x2=118.7754104&y2=31.9925792&cityCode=025&per=150&avoidanceType=0&routeType=0&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
公交站点查询
http://search1.mapabc.com/sisserver?highLight=false&resType=json&enc=utf-8&&srctype=BUS:20&config=BESN&ver=2.0&searchName=%E7%BF%A0%E5%B1%8F%E6%B8%85%E5%8D%8E&cityCode=025&number=5&resData=1&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
公交线路查询
http://search1.mapabc.com/sisserver?highLight=false&resType=xml&enc=utf-8&&config=BusLine&ver=2.0&ids=320100019006&cityCode=025&number=1&resData=1&batch=1&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
在某个地点附近周边查询
http://search1.mapabc.com/sisserver?highLight=false&resType=json&enc=utf-8&srctype=POI&config=BELSBXY&sr=0&range=3000&searchName=%E7%BF%A0%E5%B1%8F%E6%B8%85%E5%8D%8E&cityCode=025&cenX=118.7593684&cenY=32.0926858&searchType=&number=10&batch=1&a_k=4e2c1f98aec0d8df790a8b327f5dff277cfbadf3655c47d121a1bd9ad2935911b5ed9c578e938650
哈哈,软件的功能都知道是如何实现的了,你也可以做一个类似的软件了。
作者 YinKaiSheng
补充:移动开发 , Windows Phone ,