原文链接:原文链接
抓包神器Fiddler 抓 H5 地理位置请求的数据
GeolocationPositionError {code: 2, message: "Network location provider at 'https://www.googleapis.com/' : No response received."}
的根本原因分析
上篇文章中得出谷歌浏览器使用H5 地理位置API会调用接口失败,但是Edge会成功。想不出原因,看了很多文章发现都是要浏览器调用远程服务的,于是有了这篇文章,通过Fiddler 抓包 H5 API调用的服务 【Fiddler 是学python 爬虫时候学的🤭】
安装配置Fidder 【自行百度,此处不是重点】
配置需要启用Https 和 设置仅从浏览器抓包
配置路径:Tool > Options > Https
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R3uQKNmx-1610639023717)(/image-20210114232605840.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IePtidJK-1610639023720)(/image-20210114232648483.png)]
端口默认 8888
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6eHwD13O-1610639023723)(/image-20210114232737131.png)]
浏览器输入 你的ip:8888
,出现下图界面就是成功了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYJkCbLj-1610639023725)(/image-20210114232849251.png)]
安装浏览器的代理工具Proxy SwitchyOmega
。
谷歌【安装插件需要科学一点】,Edge的直接应用商店安装就行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XURryUlP-1610639023728)(/image-20210114232457571.png)]
配置插件,新建情景模式,名字随意,配置成如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LS01LFrT-1610639023729)(/image-20210114232950636.png)]
使用情景模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmgeetxI-1610639023732)(/image-20210114233037567.png)]
抓取浏览器的请求【此处用的Edge】
任意打开一个https
协议的网站,打开控制台。输入如下代码,开始抓包
await navigator.geolocation.getCurrentPosition(res => console.log(res),(err)=>console.error(err))
//结果如下
GeolocationPosition {coords: GeolocationCoordinates, timestamp: 1610637193291}coords: GeolocationCoordinates {latitude: 31.296804, longitude: 121.579117, altitude: null, accuracy: 213, altitudeAccuracy: null, …}timestamp: 1610637193291__proto__: GeolocationPosition
查看Fidder
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzrvZer2-1610639023734)(/image-20210114233341493.png)]
可以发现,也是通过WIFI 进行定位的,然后获取的经纬度。
谷歌浏览器的抓包分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aV3mDPug-1610639023735)(/image-20210114233719506.png)]
控制台结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kMooG9Ph-1610639023737)(/image-20210114233742043.png)]