fiddlerはリクエストデータを保存し、自分のサーバインタフェースに送信する
fiddlerを開くcrtl+rを押してfidder scriptを開く
OnBeforeResponseメソッドを検索し、メソッドの後に次のコードを追加します.
効果は次のとおりです.
最後に自分でhttpインタフェースをもう一つ作成してfiddler postのデータを受信すればいいです.python tornadoを使って作成した簡単な例です.
完全に以下のようにして、携帯電話airtestを使って携帯電話をブラシして、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は相応の要求を遮断してデータをサーバーに送信して、サーバーは解析を行います.