设置一个HTTP代理来插入一个头

我需要testing一些HTTP客户端,我宁愿不修改。 我需要testing的是服务器的行为,当客户端的请求包括一个特定的静态头。

我想运行这个testing的最简单的方法是设置一个HTTP代理,在每个请求中插入头。 什么是最简单的方法来设置?

在我的开发环境中,通过在端口80上configurationApache作为端口8080上的应用程序服务器的代理,并使用以下Apacheconfiguration,我可以这样做:

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添加到去应用程序服务器的请求。

你也可以安装很容易安装的Fiddler( http://www.fiddler2.com/fiddler2/ )(比Apache更容易)。

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

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

 oSession.oRequest.headers.Add("MyHeader", "MyValue"); 

而就是这样!

我会尝试tinyproxy 。 实际上,最好的方法就是在那里embedded一个脚本语言……听起来对于Lua来说是一个完美的工作,特别是在看到它对mysqlproxy

我曾经有过使用Burp (“交互式HTTP / S代理服务器攻击和testingWeb应用程序”)的同事。 您也可以使用Fiddler (“HTTPdebugging代理”)。

我没有使用代理,而是使用Firefox插件“修改标题”来插入标题(在我的情况下,使用单一login伪造login,所以我可以作为不同的人testing)。

如果您的系统上有ruby,那么使用Sinatra的小型Ruby代理(确保安装Sinatra Gem)如何? 这应该比设置Apache更容易。 代码可以在这里find。