当前位置:网站首页 / web开发 / 正文

[转载]Fiddler 高级用法2

时间:2016年01月07日 | 作者 : aaronyang | 分类 : web开发 | 浏览: 1903次 | 评论 0

①修改session样式

修改session的显示样式(颜色等)


 // 修改session中的显示样式

 oSession["ui-color"] = "orange";


② 修改http请求和应答

在如下函数中修改http请求头:


static function OnBeforeRequest(oSession: Session)

在如下函数中修改http应答:


static function OnBeforeResponse(oSession: Session)

在如下函数中fiddler命令(右下角的命令行):


static function OnExecAction(sParams: String[])

例如http请求中,对域名为p.21kunpeng.com的URI的http请求内容作修改:


if (oSession.host.indexOf("p.21kunpeng.com") > -1) {

 // 修改session中的显示样式

 oSession["ui-color"] = "orange";

 // 移除http头部中的MQB-X5-Referer字段

 oSession.oRequest.headers.Remove("MQB-X5-Referer");

 // 修改http头部中的Cache-Control字段

 oSession.oRequest["Cache-Control"] = "no-cache";

 // 修改host

 oSession.host = "kyfw.12306.cn"; 

 // 修改Origin字段

 oSession.oRequest["Origin"] = "https://kyfw.12306.cn";

 // 删除所有的cookie

 oSession.oRequest.headers.Remove("Cookie");

 // 新建cookie

 oSession.oRequest.headers.Add("Cookie", "username=yulesyu;");

 // 修改Referer字段

 oSession.oRequest["Referer"] = "https://kyfw.12306.cn/otsweb/loginAction.do";


 // 获取Request中的body字符串

 var strBody=oSession.GetRequestBodyAsString();

 // 用正则表达式或者replace方法去修改string

 strBody=strBody.replace("1111","2222");

 // 弹个对话框检查下修改后的body               

 FiddlerObject.alert(strBody);

 // 将修改后的body,重新写回Request中

 oSession.utilSetRequestBody(strBody);

}

 


例如http应答中,如果含有location并且location中含有字段initQueryUserInfo,则修改为http://p.21kunpeng.com:


 var location = oSession.oResponse.headers["Location"];

 if(oSession.PathAndQuery.indexOf("initQueryUserInfo") != -1) 

 {      

    oSession.oResponse.headers["Location"] = "http://p.21kunpeng.com";

 }


将请求URI中http协议替换成https协议,例如:


oSession.fullUrl = "https" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));






③用fidder限速,模拟网速不好的

限速对于web前端研发是非常重要的,由于开发者的机器一般配置都很高,并且都是把相关文件代理到本地来调试程序,所以很难模拟到用户的真实使用情况,如正在下载js,css等静态资源的时候,页面的一个渲染情况。当网速很慢的时候,我们更希望看到的是先渲染出用户界面,而不是让用户看到一片空白。那么这个时候,网络限速就能很方便在localhost针对类似的情况来做性能调试与优化。

我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。

fiddler提供了一个功能,让我们模拟低速网路环境。启用方法如下:Rules → Performances → Simulate Modem Speeds。勾选之后,你会发现你的网路瞬间慢下来了很多。至于慢下来后网络速度是多少,则由CustomRules.js 中如下程序控制的:

 if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
     oSession["request-trickle-delay"] = "300"; 
     // Delay receives by 150ms per KB downloaded.
     oSession["response-trickle-delay"] = "150"; 
 }

算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kB/s 需要delay20毫秒来接收数据,所以根据你需要的网络速度来修改上述值。


推荐您阅读更多有关于“web,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

合肥科大智能常年招聘.NET,Java,Web前端,有想找想换工作的私聊我AY唯一QQ:875556003和AY交流

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表