我需要测试与客户端的一些HTTP交互,我宁愿不修改。我需要测试的是当客户端的请求包含特定的静态头时服务器的行为。设置HTTP代理以插入标头
我在想,运行这个测试最简单的方法是设置一个HTTP代理,在每个请求中插入头文件。设置这个最简单的方法是什么?
我需要测试与客户端的一些HTTP交互,我宁愿不修改。我需要测试的是当客户端的请求包含特定的静态头时服务器的行为。设置HTTP代理以插入标头
我在想,运行这个测试最简单的方法是设置一个HTTP代理,在每个请求中插入头文件。设置这个最简单的方法是什么?
我通过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>
见LocationMatch和RequestHeader文档。
这会将标头myheader:myvalue添加到发送到应用程序服务器的请求中。
我想尝试tinyproxy。事实上,合租最好将是使嵌入的脚本语言有...听起来像Lua一个完美的工作,尤其是看到它如何工作了mysqlproxy
使用http://www.proxomitron.info并设置你想要的头,等
您还可以安装非常容易安装的提琴手(http://www.fiddler2.com/fiddler2/)(比Apache更容易)。
启动后,它将自己注册为系统代理。然后打开“规则”菜单,然后选择“自定义规则...”打开一个JScript文件,它允许您自定义请求。
要添加自定义标题,只需添加一行在OnBeforeRequest
功能:
oSession.oRequest.headers.Add("MyHeader", "MyValue");
而不是使用一个代理,我使用的是Firefox插件"Modify Headers"插入页眉(在我的情况下,假使用单点登录的登录,所以我可以作为不同的人测试)。
如果您的系统上有红宝石,那么使用Sinatra的小型Ruby代理(确保安装Sinatra Gem)如何?这应该比设置Apache更容易。代码可以找到here.
它还会将myheader:myvalue添加到响应标题中。关于Apache mod_headers的完整文档:http://httpd.apache.org/docs/current/mod/mod_headers.html – 2012-03-05 10:18:47
@Fred:那么我们如何限制头文件只出现在代理请求中呢? – 2013-03-29 08:42:09