w5m*_*w5m 44 http httpresponse http-status-codes fiddler
我需要测试一些我编写的客户端应用程序代码,以测试它对来自Web服务器的HTTP响应中返回的各种状态代码的处理.
我安装了Fiddler 2(Web调试代理),我相信有一种方法可以使用这个应用程序修改响应,但我很难找到方法.这将是最方便的方式,因为它允许我保持客户端和服务器代码不被修改.
任何人都可以协助,因为我想拦截从服务器发送到客户端的HTTP响应并在到达客户端之前修改状态代码?
任何建议将不胜感激.
小智 74
好的,所以我假设您已经能够监控您的客户端/服务器流量.你想要做的是在响应上设置一个断点,然后在将它发送到客户端之前摆弄它.
以下是一些不同的方法:
一旦你在断点处停止响应,只需双击它就可以在检查员中打开它.你现在有几个选择:
小智 10
另一种方法是使用Fiddler的AutoResponder选项卡(在右侧面板上).这允许您捕获对与字符串匹配的任何URI的请求,并从文件中提供"预制"响应.该文件可以包含标头和有效负载.这种方法的优点是您不必编写FiddlerScript,也不必通过断点手动处理每个请求.
您可以在Fiddler中设置规则,如下所示(确保您启用不匹配的请求,否则所有其他http请求都将失败).
在此示例中,任何URI包含"fooBar"的请求都将获得预设响应.文件的格式将根据您的API而有所不同(您可以使用浏览器拦截"真实"响应并以此为基础)但我的看起来如下所示:
HTTP/1.1 409 Conflict
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Max-Age: 86400
Content-Type: application/vnd.api+json
Content-Length: 149
Date: Tue, 28 Mar 2017 10:03:29 GMT
{"errors":[{"code":"OutOfStock","detail":"Item not in stock","source":{"lineId":{"type":"Order line Number","id":"1"}},"meta":{"availableStock":0}}]}
Run Code Online (Sandbox Code Playgroud)
我发现它需要在最后一行的末尾(即在json之后)返回一个回车符,并且Content-Length头必须与json中的字符数相匹配,否则webapp会挂起.你的旅费可能会改变.
| 归档时间: |
|
| 查看次数: |
33884 次 |
| 最近记录: |