fiddler 保存请求数据并发送到自己的服务器接口
搜索OnBeforeResponse 方法,再方法后面添加如下代码:
- if (oSession.fullUrl.Contains("/rest/n/")){
- //把内容通过ajax http发送其它地方
- var _xhr = new ActiveXObject('Microsoft.XMLHTTP');
- var url = 'http://127.0.0.1:8000/';
- //发送的数据参数
- var param = {
- result: oSession.GetResponseBodyAsString(),
- url: oSession.url,
- headers: oSession.oRequest.headers,
- form: oSession.GetRequestBodyAsString()
- };
- var par = '';
- for (var i in param) {
- var _data = escape(param[i]);
- par += par ? ("&" + i + "=" + _data) : (i + "=" + _data);
- }
- //不需要返回值所以写啦个空回调
- _xhr.onreadystatechange = function() {}
- _xhr.open('POST', url, true);
- _xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- _xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
- _xhr.send(par);
- }
效果如下:
最后自己再编写一个http接口,接收fiddler post过的的数据即可,我是使用python tornado 编写的一个简易例子
- import tornado
- from tornado.web import RequestHandler, url
-
-
- class IndexHandler(RequestHandler):
-
- async def get(self, *args, **kwargs):
- pass
- self.write({"code": 200})
-
- async def post(self, *args, **kwargs):
- print(self.get_argument('result'))
- print(self.get_argument('url'))
- print(self.get_argument('headers'))
- print(self.get_argument('form'))
-
- self.write({"code": 200})
-
-
- urls = [
- url('/', IndexHandler)
- ]
-
-
- if __name__ == "__main__":
- app = tornado.web.Application(
- urls, debug=True
- )
- http_server = tornado.httpserver.HTTPServer(app)
- http_server.bind(8000) # 引用变量值
- http_server.start(1) # 多进程启动
- tornado.ioloop.IOLoop.current().start()
完整下过如下,使用手机airtest刷动手机,fiddler拦截相应请求发送数据到服务器,服务器进行解析即可。