57

我需要测试与我不想修改的客户端的一些 HTTP 交互。我需要测试的是当客户端的请求包含某个静态标头时服务器的行为。

我认为运行此测试的最简单方法是设置一个 HTTP 代理,在每个请求中插入标头。设置它的最简单方法是什么?

4

7 回答 7

88

我在我的开发环境中通过将端口 80 上的 Apache 配置为端口 8080 上的应用程序服务器的代理来执行类似的操作,并使用以下 Apache 配置:

NameVirtualHost *
<VirtualHost *>
   <Proxy http://127.0.0.1:8080/*>
      Allow from all
   </Proxy>
   <LocationMatch "/myapp">
      ProxyPass http://127.0.0.1:8080/myapp
      ProxyPassReverse http://127.0.0.1:8080/myapp
      Header add myheader "myvalue"
      RequestHeader set myheader "myvalue"   
   </LocationMatch>
</VirtualHost>

请参阅LocationMatchRequestHeader文档。

这会将标头myheader: myvalue添加到发送到应用程序服务器的请求中。

于 2008-09-30T19:44:08.773 回答
15

您还可以安装非常容易安装的 Fiddler ( http://www.fiddler2.com/fiddler2/ )(例如,比 Apache 更容易)。

启动后,它将自己注册为系统代理。然后打开“规则”菜单,并选择“自定义规则...”打开一个 JScript 文件,该文件允许您自定义请求。

要添加自定义标题,只需在OnBeforeRequest函数中添加一行:

oSession.oRequest.headers.Add("MyHeader", "MyValue");
于 2008-10-01T14:09:39.943 回答
3

我会尝试tinyproxy。事实上,最好的办法是在其中嵌入一种脚本语言......听起来对Lua来说是一项完美的工作,尤其是在看到它对mysqlproxy的工作情况之后

于 2008-09-30T19:03:34.923 回答
2

我有同事为此使用了Burp(“用于攻击和测试 Web 应用程序的交互式 HTTP/S 代理服务器”)。您还可以使用Fiddler(“一个 HTTP 调试代理”)。

于 2008-09-30T19:16:11.040 回答
1

使用http://www.proxomitron.info并设置您想要的标题等。

于 2008-09-30T19:25:08.290 回答
1

我没有使用代理,而是使用 Firefox 插件“修改标题”来插入标题(在我的情况下,使用单点登录来伪造登录,以便我可以作为不同的人进行测试)。

于 2013-06-06T19:35:08.567 回答
0

如果您的系统上有 ruby​​,那么使用 Sinatra 的小型 Rub​​y 代理怎么样(确保安装 Sinatra Gem)。这应该比设置 apache 更容易。代码可以在这里找到。

于 2015-07-25T04:04:57.963 回答