您的位置:首页 > 产品设计 > UI/UE

Fiddler:如何读取本地文件修改Request参数

2017-06-01 11:02 1721 查看
我将在学习Fiddler的路上,一路狂奔……



需求:读取本地文件,修改request的值

第一步:读取本地文件的方法

class Handlers
{
……
//读取本地文件的方法
static function readFile(filename)
{
//TODO:目前只支持了英文读写,后续需要支持中文
//FiddlerObject.alert("readFile");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(filename,1);
var s = "";
while (!f.AtEndOfStream)
s += f.ReadLine()+"\n";
f.Close();
//  FiddlerObject.alert(s);
return s;
}
……
}


知识点解析:

FileSystemobject

要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。

var fso = new ActiveXObject(“Scripting.FileSystemObject”);

OpenTextFile

OpenTextFile 方法打开指定的文件,并返回可用来访问此文件的 TextStream 对象。

语法:

FileSystemObject.OpenTextFile(fname,mode,create,format)

参数描述
fname必需的。要打开的文件的名称。
mode可选的。如何打开文件。
1=ForReading - 打开文件用于读取数据。您无法向此文件写数
2=ForWriting - 打开文件用于写数据。
8=ForAppending - 打开文件,并向文件的末尾写数据。
create设置如果文件名不存在,是否创建新文件。True 指示可创建新文件,而 False 指示新文件不会被创建。False 是默认的。
format可选的。文件的格式。
0=TristateFalse - 以 ASCII 打开文件。默认。
-1=TristateTrue - 以 Unicode 打开文件。
-2=TristateUseDefault - 使用系统默认格式打开文件。
var f = fso.OpenTextFile(filename,1);

打开filename文件用于读取数据,仅仅是读取数据。

AtEndOfStream

TextStream的属性

如果文件指针位于 TextStream 文件的末尾,AtEndOfStream 属性返回 True ,否则返回 False 。

注释:此属性仅工作于以只读方式打开的 TextStream 对象。

第二步:在OnBeforeRequest方法中调用readFile方法,获得文件内容,修改request的body

class Handlers
{
……
static function readFile(filename){

}
static function OnBeforeRequest(oSession: Session) {
……
// 1. 匹配 url.
if (oSession.HostnameIs("sdk.api.kaffnet.com") && oSession.uriContains("/v4/m.php")) {
oSession["ui-color"] = "orange";
// 2. 替换 request body
var body = oSession.GetRequestBodyAsString();
var string = readFile("D:\\jiemi_sdk.txt");
body = string;
//  FiddlerObject.alert(string);
oSession.utilSetRequestBody(body);
}
……
}
……
}


就这样两步就实现了读取本地文件修改Request参数。可以举一反三,实现读取本地文件修改Response参数,你知道怎么做吗?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  读取本地文件