1.前言

之前需要虚拟定位一直是使用安卓模拟器实现,今天发现Fidder居然可以通过自动改包实现

目标:下图中的您所在位置

https://s1.ax1x.com/2022/10/08/x8ztfA.png

2.查看请求

抓包看他的请求内容如下

https://s1.ax1x.com/2022/10/08/x8zUSI.png

原来是因为里面两个undefined经纬度导致接口返回说格式错误,然后无法得到位置

简单的想法自然是替换这两个字符串。

但是如何替换呢?难道要每次手动拦截改请求吗?

自然是不现实的

于是使用FiddlerScript.

3.添加自动改包功能并添加方便的开关

1.添加开关

1
2
3
4
5
6
//控制开关,规则->是否开启替换请求URL参数
public static RulesOption("是否开启替换请求URL参数")

BindPref("fiddlerscript.rules.isURL")

var m_isURL: boolean = true;

2.添加自动改包功能

1
2
3
4
5
6
7
8
9
10
11
12
//在规则->是否替换请求URL参数开启了就会执行下面的命令
if(m_isURL){
//这里一般填写Host+?前面的的内容,因为?后面的内容容易变动

if(oSession.fullUrl.Contains("apis.map.qq.com")){
try{
oSession.fullUrl = oSession.fullUrl.Replace("location=undefined,undefined","location=30,100")
}catch(err){
FiddlerObject.log("出现异常,错误原因:"+err)
}
}
}

位置自然在OnBeforeRequest前后

https://s1.ax1x.com/2022/10/08/x8zalt.png

再次点获取,成功