许多帖子请求的Fiddler AutoResponder

时间:2017-01-10 13:23:57

标签: http debugging fiddler auto-responder

我正在开发一个发送数千个http post请求的应用程序。我希望记录所有回复,并在Fiddler`的帮助下将它们用作存根。

例如(为简单起见,假设产品价格= productid):

  1. 发送请求,正文<productId>1</productId>
  2. 得到真实的回应,身体<productprice>1</productprice>
  3. 保存响应(标题+正文)形成本地存储中的上一步,for 某些字典[1,"HTTP/1.1 200 OK <productprice>1</productprice>"]中的示例。 (因为我们存储了这个回复, 下一个请求匹配模式body contains <productId>1</productId>应该从我们的本地存储中响应 )
  4. 发送请求,正文<productId>1</productId>
  5. 从本地存储加载响应并返回HTTP/1.1 200 OK <productprice>1</productprice>
  6. 发送请求,正文<productId>2</productId>
  7. 得到真实的回应,身体<productprice>5</productprice>
  8. 保存响应(标题+正文)形成本地存储中的上一步,for 某些字典[1,"HTTP/1.1 200 OK <productprice>1</productprice>"],[2,"HTTP/1.1 200 OK <productprice>2</productprice>"]
  9. 中的示例
  10. ...
  11. 如何为它配置Fiddler

    详细说明:

    我已经捕获了1000个真正的POST个请求,我想在他们的帮助下调试我的应用程序。

    每个请求/响应都是唯一的,通常如下所示:

    请求

    POST https://myurl HTTP/1.1
    Authorization: Bearer xxx
    Content-Type: application/soap+xml; charset=utf-8; action="GetList"
    Host: myurl.net
    Content-Length: 358
    Expect: 100-continue 
    <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
        <s:Body>
            <catalogRequest xmlns="https://myurl">
                <id xmlns="">1</id>
            </catalogRequest>
        </s:Body>
    </s:Envelope>
    

    响应

    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="https://myurl">
        <env:Body>
            <ns1:catalogResponse>
                <result>
                    <id>1</id>
                    <name>some text</name>
                    <price>109.99</price>
                    ... big xml ...
                    <status>1</status>
                </result>
            </ns1:catalogResponse>
        </env:Body>
    </env:Envelope>
    

    我尝试了Autoresponder,但是当我将捕获的会话拖到Autoresponder时,它们被转换为以下规则:METHOD:POST EXACT: - 此规则不使用POST正文。我无法手动更改1000条规则以使用URLWithBody规则

    我认为可以创建Fiddler脚本,但我不知道如何存储此脚本的捕获请求/响应以将其用作映射。

1 个答案:

答案 0 :(得分:0)

经过小规模研究后,我发现了一种记录响应的方法,并将其用作未来的存根。为了实现我建议使用fiddler脚本。这里是伪代码

中的脚本示例

BeforeRequest

var body = session.requestBodyBytes;
var id = GetIdFromBody(body);// code for getting id from request body
session.Reply = id;

AfterResponse

var body = session.GetRequestBodyAsString();
var id = GetIdFromRespBody(body);// code for getting id from response body
session.SaveResponse(id);