1

我希望能够做的:在将 HTTP 请求发送到服务器之前对其进行编辑

用户在浏览器中导航到他们选择的网页 > 他们遇到想要编辑的请求 > 他们编辑请求,然后将其发送到服务器而不是原始请求。

到目前为止我所做的:我已经捕获了请求,现在我需要帮助找到代码来编辑它。这是我到目前为止捕获请求的代码:

    Fiddler.FiddlerApplication.BeforeRequest += sess =>
    {
        //Code to detect user specified URL here
    }

我是否可以在实际发送请求之前对其进行编辑?如果只能使用 FiddlerCore API 来完成,我将不胜感激,但如果需要,我愿意下载更多二进制文件。

附加说明:我尝试过流式写入器,二进制写入器,将响应复制到内存流中编辑它然后将其复制回来,这些方法都不适合我。此外,当我尝试一些方法时,我的应用程序只是挂起并且不响应按 X 之类的操作。

也许我只是不擅长解释我想要实现的目标,似乎我唯一的好答案是关于响应:/

如果请求读取字符串“hello world”,那么我希望用户能够将请求更改为“hello there”

4

2 回答 2

1

我犯了一个如此愚蠢的错误,我认为 RequestBody 是只读的!原来我可以像这样简单地编辑响应:

    session.RequestBody = myBytes;

为此真的很气自己!

于 2012-12-14T11:27:57.070 回答
0

在演示应用程序中,添加委托如下所示:

    Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) {
        // Console.WriteLine("{0}:HTTP {1} for {2}", oS.id, oS.responseCode, oS.fullUrl);

        // Uncomment the following two statements to decompress/unchunk the
        // HTTP response and subsequently modify any HTTP responses to replace 
        // instances of the word "Microsoft" with "Bayden". You MUST also
        // set bBufferResponse = true inside the beforeREQUEST method above.
        //
        //oS.utilDecodeResponse(); oS.utilReplaceInResponse("Microsoft", "Bayden");
    };
于 2012-12-14T10:03:19.797 回答