fiddler 查看请求是url还是表单

fiddler 查看请求是url还是表单,第1张

命令介绍: bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定>

Fiddler是个强大的Web调试工具,具体的功能不在此多述,可以参考后面的链接以及Fiddler官网的手册。本文主要介绍Fiddler的重发请求功能,并通过自定义脚本实现根据条件来重发请求。 在进行Web调试时,经常会遇到浏览器请求正常但是程序请求异常的情况,这时我们常常需要使用Fiddler对比这两个请求的异同,然后将一个请求改变参数或>

Reissue Requests: 直接重发选定请求

Reissue and Edit: 重发选定请求,并在请求之前断点,可以对请求进行修改

Reissue from Composer: 将选定请求送到Composer窗口,和将请求拖拽到Composer效果是一样的,在Composer窗口中可以对请求有更精确的控制

只简单的重发指定请求,或在指定请求上进行编辑往往是不够的,在项目中我们偶尔会遇到这样的情形:先发送请求A,然后根据请求A结果中的某个值来发送请求B,譬如有这样的两个接口:get_random_serverphp接口通过接收的数据随机返回一个服务器ID,get_dataphp接口则根据刚刚的服务器ID来获取数据。下面是一个示例:

localhost/get_random_serverphpdata=Hello -> 返回JSON结果:{ success: true, sid: 2 }

localhost/get_dataphpsid=2

这个时候Fiddler的可扩展性就能大显神威了,可以通过两种方式实现Fiddler的扩展:FiddlerScript和插件机制,这里使用FiddlerScript就足够应付了。在Fiddler的菜单项Rules中选择Customize Rules就可以打开Fiddler的自定义脚本文件CustomRulesjs,该脚本一般保存在\Documents\Fiddler2\Scripts目录下。我推荐使用Fidder ScriptEditor进行脚本的编辑,Fidder ScriptEditor具有语法高亮和语法检查的功能,并在右侧面板提供了Fiddler内置的函数列表。 通过展开浏览右侧的函数列表,就基本上可以大概的了解到几个可能会用到的函数了:

FiddlerApplicationoProxySendRequest

FiddlerApplicationoProxySendRequestAndWait

FiddlerObjectutilIssueRequest

我们先通过下面的代码来练练手,将下面的代码拷贝到CustomRulesjs中并保存,Fidder ScriptEditor会自动检查语法错误,并重新加载脚本,无需重启Fiddler脚本即可生效。CustomRulesjs使用的是JScriptNet语法,对于Javascipt或C#程序员应该可以很快上手。这时在Fiddler中随便选择一条请求,点击右键,会发现最上面多了一个选择项Test Send Request,选择该项可以达到和Reissue Requests同样的功能,重发指定请求。

12345678910111213   public static ContextAction("Test Send Request")function SendRequest(oSessions: Session[]) {         if (oSessionsLength == 0) return;    FiddlerApplicationLogLogString("Sending");         var selected: Session = oSessions[0];         var oSD = new SystemCollectionsSpecializedStringDictionary();    var res = FiddlerApplicationoProxySendRequestAndWait(selectedoRequestheaders, selectedRequestBody, oSD, null);    FiddlerApplicationLogLogString("Request has been Send");    FiddlerApplicationLogLogString(resGetResponseBodyAsString());}   

SendRequest/SendRequestAndWait函数有一个不方便之处,他的两个参数oHeaders和arrRequestBodyBytes分别是>1234567891011121314151617181920212223242526272829303132   public static ContextAction("Probe this!")function ProbeSession(oSessions: Session[]) {         if (oSessionsLength == 0) return;    FiddlerApplicationLogLogString("Probing");         var selected: Session = oSessions[0];    var raw = "";         // methods    var method:String = selectedRequestMethod;    var url:String = selectedfullUrl;    var protocol = "");}   

>1234567891011   POST    

后面的工作就水到渠成了,通过SendRequestAndWait获取请求A的结果,解析请求A结果获取sid参数,然后拼接>

以上就是关于fiddler 查看请求是url还是表单全部的内容,包括:fiddler 查看请求是url还是表单、如何在Fiddler script中捕获请求结果并针对返回内容发起一个新请求、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9583324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存