fiddler怎么过滤请求fiddlerfiddler
时间: 2023-10-07 14:04:39 浏览: 125
可以使用Fiddler的过滤器功能来过滤请求。在Fiddler的顶部菜单栏中,选择“Edit” -> “Find” -> “Filters”或者使用快捷键“Ctrl + F5”,打开过滤器设置界面。在过滤器设置界面中,可以选择按照请求的URL、请求的方法、请求的状态码、请求的大小等多种条件进行过滤。输入过滤条件后,点击“Add”按钮,然后再点击“OK”按钮即可应用过滤器。此时,只有符合过滤条件的请求才会在Fiddler中显示。
相关问题
写一个fiddler插件 过滤请求返回的内容
好的,以下是一个简单的 Fiddler 插件,它可以过滤所有请求和响应中包含指定字符串的内容:
```csharp
using System;
using Fiddler;
public class FilterPlugin : IFiddlerExtension
{
private const string FilterString = "example";
public void OnLoad()
{
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
}
public void OnUnload()
{
FiddlerApplication.AfterSessionComplete -= FiddlerApplication_AfterSessionComplete;
}
private void FiddlerApplication_AfterSessionComplete(Session session)
{
if (session.responseBodyBytes != null)
{
var responseBody = System.Text.Encoding.UTF8.GetString(session.responseBodyBytes);
if (responseBody.Contains(FilterString))
{
session.responseBodyBytes = null;
session["ui-comments"] = "Filtered out response containing \"" + FilterString + "\"";
}
}
}
}
```
这个插件会在 Fiddler 加载时注册一个事件处理程序,该事件处理程序会在每个请求完成后检查响应正文中是否包含指定的字符串。如果包含,则将响应正文设置为 null,以过滤掉响应。同时,它还会在 Fiddler 的 UI 中添加一个注释,说明该响应被过滤了。
你可以将上面的代码保存为一个名为 `FilterPlugin.cs` 的文件,在 Visual Studio 中编译为类库,并将生成的 DLL 文件复制到 Fiddler 的 `Scripts` 目录下。然后在 Fiddler 的菜单栏中选择 `Rules` -> `Customize Rules`,在打开的脚本文件中添加以下代码:
```csharp
#pragma comment (lib, "FilterPlugin.dll")
public static RulesOption("Filter responses containing:")
var m_FilterResponses: String = "";
[...]
public static function OnBeforeResponse(oSession: Session) {
if (m_FilterResponses.Length > 0) {
if (oSession.responseBodyBytes != null) {
var responseBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
if (responseBody.Contains(m_FilterResponses)) {
oSession.responseBodyBytes = null;
oSession["ui-comments"] = "Filtered out response containing \"" + m_FilterResponses + "\"";
}
}
}
}
```
这段代码会在 Fiddler 的 `OnBeforeResponse` 方法中调用插件的代码,以过滤响应内容。它还添加一个 UI 元素,可以让用户在 Fiddler 的界面中输入要过滤的字符串。
Fiddler 异步请求
Fiddler可以通过脚本实现异步请求。以下是一个示例脚本,它使用了异步请求。
```csharp
static function OnBeforeRequest(oSession: Session) {
// 判断请求是否需要异步处理
if (oSession.uriContains("example.com/async")) {
// 创建一个新的异步请求
var asyncReq = Fiddler.WebFormats.JSON.JsonRequest.Create(oSession.fullUrl, "POST", "{}");
// 设置异步请求的回调函数
asyncReq.OnComplete = function (oAsync) {
// 异步请求完成后,将响应数据复制到原始请求中
oSession.utilSetResponseBody(oAsync.responseBodyBytes);
oSession.oResponse.headers = oAsync.responseHeaders;
oSession.oResponse.headers.HTTPResponseStatus = oAsync.responseStatusCode;
}
// 发送异步请求
asyncReq.Send();
// 取消原始请求的发送
oSession["ui-hide"] = "true";
}
}
```
该脚本的作用是,当请求的URL包含`example.com/async`时,将该请求变为异步请求。它创建了一个新的异步请求,并将原始请求的响应数据复制到异步请求中。在异步请求完成后,将异步请求的响应数据复制回原始请求中,并取消原始请求的发送。这样,就完成了异步请求的操作。
阅读全文