fiddlerscript 如何获取和修改multipart_form的内容

fiddlerscript 如何获取和修改multipart_form的内容

img

在 FiddlerScript 中,可以通过 oSession.GetRequestBodyAsString() 方法获取请求中的 multipart/form-data 数据,通过 oSession.utilDecodeRequest() 方法将请求体解码为键值对的形式,然后对其中的值进行修改。

下面是一个简单的示例,展示了如何获取和修改 multipart/form-data 请求中的内容:

// 将 oSession.utilDecodeRequest() 方法返回的键值对转换为字典类型
Dictionary<string, string> formData = new Dictionary<string, string>();
foreach (string line in oSession.utilDecodeRequest(oSession.requestBodyBytes))
{
    string[] parts = line.Split(new char[] { ':' }, 2);
    if (parts.Length == 2)
    {
        formData[parts[0].Trim()] = parts[1].Trim();
    }
}

// 获取名称为 "username" 的表单字段的值
string username = formData["username"];

// 修改名称为 "password" 的表单字段的值
formData["password"] = "new-password";

// 将修改后的表单数据重新编码为字符串
string newRequestBody = "";
foreach (KeyValuePair<string, string> kvp in formData)
{
    newRequestBody += kvp.Key + ": " + kvp.Value + "\r\n";
}
newRequestBody = newRequestBody.Trim();

// 将新的请求体设置为请求的内容
oSession.utilSetRequestBody(newRequestBody);


```在上面的示例中,我们首先将请求体解码为键值对的形式,然后获取了名称为 "username" 的表单字段的值,并将名称为 "password" 的表单字段的值修改为了 "new-password"。最后,我们将修改后的表单数据重新编码为字符串,并将其设置为请求的内容。

需要注意的是,multipart/form-data 数据通常包含多个表单字段和文件,如果您需要修改其中的文件内容,请使用 oSession.GetRequestBodyAsBytes() 方法获取原始请求体,然后使用类似于 formData 字典的方式处理其中的内容。另外,修改 multipart/form-data 数据可能会破坏数据的完整性,因此请谨慎使用。