您当前的位置:首页 > 计算机 > 软件应用 > 网络应用

fiddler 保存请求数据并发送到自己的服务器接口

时间:01-26来源:作者:点击数:

fiddler 保存请求数据并发送到自己的服务器接口

打开fiddler 按 crtl+r 打开 fidder script

搜索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拦截相应请求发送数据到服务器,服务器进行解析即可。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门