我正在开发一个发送数千个http post请求的应用程序。我希望记录所有回复,并在Fiddler`的帮助下将它们用作存根。
例如(为简单起见,假设产品价格= productid):
<productId>1</productId>
<productprice>1</productprice>
[1,"HTTP/1.1 200 OK
<productprice>1</productprice>"]
中的示例。 (因为我们存储了这个回复,
下一个请求匹配模式body contains
<productId>1</productId>
应该从我们的本地存储中响应
)<productId>1</productId>
HTTP/1.1 200 OK
<productprice>1</productprice>
<productId>2</productId>
<productprice>5</productprice>
[1,"HTTP/1.1 200 OK
<productprice>1</productprice>"],[2,"HTTP/1.1 200 OK
<productprice>2</productprice>"]
如何为它配置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
脚本,但我不知道如何存储此脚本的捕获请求/响应以将其用作映射。
答案 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);