背景:
fiddler本身提供了断点,可以修改请求参数和返回结果来达到某种测试需要,但由于超时时间很短,一般在几秒之内,而在这么短时间内往往还没有手动修改完,请求已经超时导致无法模拟请求。
fiddler提供了AutoResponder功能,它可以过滤到某个http请求,指定本地返回结果,用于取代服务器返回。
1、首先将该两选项勾选;
2、将请求拖入该区域
3、本地创建txt文件,写一个返回结果,例如:{"status":402,"data":{"msg":"appID不存在!"}}。
4。修改规则后test一下是否匹配测试的url,如匹配则testURL中有地址,背景色为浅青色,save一下。
5、好了,客户端操作发送此请求时,fiddler就会自动帮我们修改返回的结果,我们客户端拿到这返回的结果应该会有相应的影响。
遇到的问题:
实际操作过程中遇到客户端请求后,返回了本地文件的内容,但是app报错,显示“网络异常”。
原APP显示的内容:
修改原响应内容后的本地响应文件如下:
正确获取了本地的相应结果:
但APP显示错误:
经过反复分析,发现是由于Content-Length值错误导致的APP无法正常解析返回结果(修改了请求结果的内容会导致返回内容的长度发生变化)。
但修改后的Content-Length值怎么获取呢?
想来想去可以通过浏览器自带的调试工具查看实际返回的Content-Length值。
获取到实际的Content-Length值后,修改本地文件的Content-Length值。
重新刷新APP页面,APP正常解析了返回数据,如下:
APP显示结果: