FiddlerScript学习一:修改Request或Response
来源:互联网 发布:东莞网络问政平台 编辑:程序博客网 时间:2024/06/05 15:48
前两天因项目需要,简单看了一下FiddlerScript,功能挺强的,今天有时间仔细看一下,做个笔记。
修改Request或Response
修改Request和Response要在FiddlerScript中的OnBeforeRequest和OnBeforeResponse函数中添加规则即可。OnBeforeRequest函数是在每次请求之前调用,OnBeforeResponse函数是在每次响应之前调用。
1、添加请求头Header
oSession.oRequest[“NewHeaderName”] = “New header value”;
2、删除Response的Header
oSession.oResponse.headers.Remove(“Set-Cookie”);
3、将请求从一个页面转发到同一Server上的另一页面
if (oSession.PathAndQuery==”/hello/hello.html”) {
oSession.PathAndQuery=”/hello/index.html”;
}
注意:oSession.PathAndQuery的值为fiddler中session列表中的Url:
即图中红色标注出来的部分。图中黄色标注出来的部分有点特殊,host为Tunnel to ,url为另一host。查看该请求的Header为:
这种特殊情况会在下面还有例子。
上面的例子,拦截请求地址为/hello/hello.html的请求,并将其转发到相同Server的/hello/index.html
4、将请求转发到相同端口号的不同服务器(修改请求的Host)
if(oSession.HostnameIs("www.baidu.com")){ oSession.hostname = "www.sina.com.cn";}这个例子是将发送到百度的请求转发到新浪,则会提示页面不存在。这里只是改变了host,并不改变后面的地址,因此, 如果在新浪上不存在相应的页面。如下面图片所示:如果我访问的是如下地址:http://www.baidu.com/link?url=CQuVpjo9u9UQADcstwECPEmrziPMk5u5H9PlRN2TbWLkKZaxafVER2X8OEYzovr-yasX2Fwcgj0NANBtKVj0gN78jNJ3bXTmIsTeBk7hXem则结果如下:(该页面实际是存在的,是百度搜索出来的结果页面,被fiddler转发到新浪,但是新浪上不存的此页面)5、将请求转发到不同端口号,不同Serverif (oSession.host=="192.168.0.70:8080") { oSession.host="192.168.0.69:8020"; }这个例子是将发送到192.168.0.70:8080的请求转发到192.168.0.69:8020,这里只是改变host,并不改变后面的请求地址。例如,做以上的规则后,我请求的是:http://192.168.0.70:8080/hello/hello.html而实际我项目部署到的是:192.168.0.69:80206、将所有请求从一个服务器转发到另一个服务器,包括Https// Redirect traffic, including HTTPS tunnels if (oSession.HTTPMethodIs("CONNECT") && (oSession.PathAndQuery == "www.example.com:443")) { oSession.PathAndQuery = "beta.example.com:443"; }if (oSession.HostnameIs("www.example.com")) oSession.hostname = "beta.example.com";
7、Simulate the Windows HOSTS file, by pointing one Hostname to a different IP address. (Retargets without changing the request’s Host header)
// All requests for subdomain.example.com should be directed to the development server at 128.123.133.123
if (oSession.HostnameIs(“subdomain.example.com”)){
oSession.bypassGateway = true; // Prevent this request from going through an upstream proxy
oSession[“x-overrideHost”] = “128.123.133.123”; // DNS name or IP address of target server
}
8、Retarget requests for a single page to a different page, potentially on a different server. (Retargets by changing the request’s Host header)if (oSession.url==”www.example.com/live.js”) {
oSession.url = “dev.example.com/workinprogress.js”;
}
9、Prevent upload of HTTP CookiesoSession.oRequest.headers.Remove(“Cookie”);
10、Decompress and unchunk a HTTP response, updating headers if needed// Remove any compression or chunking from the response in order to make it easier to manipulate
oSession.utilDecodeResponse();
11、Search and replace in HTML.if (oSession.HostnameIs(“www.bayden.com”) && oSession.oResponse.headers.ExistsAndContains(“Content-Type”,”text/html”)){
oSession.utilDecodeResponse();
oSession.utilReplaceInResponse(‘’,’’);
}
12、Case insensitive Search of response HTML.if (oSession.oResponse.headers.ExistsAndContains(“Content-Type”, “text/html”) && oSession.utilFindInResponse(“searchfor”, false)>-1){
oSession[“ui-color”] = “red”;
}
13、Remove all DIV tags (and content inside the DIV tag)// If content-type is HTML, then remove all DIV tags
if (oSession.oResponse.headers.ExistsAndContains(“Content-Type”, “html”)){
// Remove any compression or chunking
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);// Replace all instances of the DIV tag with an empty string
var oRegEx = /
- FiddlerScript学习一:修改Request或Response
- FiddlerScript学习一:修改Request或Response
- 修改fiddler中CustomRules.js的Request或Response
- 详解Response、Request一
- request和response学习
- request/response学习笔记
- Charles断点修改request/response
- HTTP协议学习# (一)request 和response 解析
- HTTP协议学习# (一)request 和response 解析
- #HTTP协议学习# (一)request 和response 解析
- HTTP协议学习# (一)request 和response 解析
- JavaEE学习04--request&response
- .net学习一:最创建的几个对象 page session applicaton request response
- Response 学习一
- Tomcat学习之Request/Response封装
- request和response的学习总结
- day08-request&responseのPPT学习
- Tomcat学习之Request/Response封装
- 加速R运行的简易方法-数据结构和*pply簇
- OSX: Preparing Making Clean OSX Core
- 3D打印机耗材ABS和PLA的区别
- Ultimaker 两款新3D打印机抢鲜评测
- leetcode 88: Merge Sorted Array
- FiddlerScript学习一:修改Request或Response
- how to build a cgal program in qt under ubuntu
- 模板类的继承
- 1076. Forwards on Weibo (30)
- 1077. Kuchiguse (20)
- Flip Game POJ1753
- 1078. Hashing (25)
- 什么是概念学习?
- 1079. Total Sales of Supply Chain (25)