设置HTTP代理以插入标头
-
03-07-2019 - |
题
我需要测试一些与客户端的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 添加到发送到应用程序服务器的请求中。
其他提示
您也可以安装Fiddler( http://www.fiddler2.com/fiddler2/ )这非常容易安装(例如比Apache更容易)。
启动后,它会将自己注册为系统代理。然后打开“规则”菜单,然后选择“自定义规则...”打开一个JScript文件,允许您自定义请求。
要添加自定义标题,只需在 OnBeforeRequest
函数中添加一行:
oSession.oRequest.headers.Add("MyHeader", "MyValue");
我会尝试 tinyproxy 。事实上,最好的方法是在那里嵌入脚本语言......听起来像是 Lua ,特别是在看到 mysqlproxy
的效果之后使用 http://www.proxomitron.info 并设置您想要的标题等。
我没有使用代理,而是使用Firefox插件 “修改标题”以插入标题(在我的情况下,使用单点登录假冒登录,以便我可以作为不同的人进行测试)。
如果你的系统上有ruby,那么使用Sinatra的小型Ruby代理怎么样(确保安装Sinatra Gem)。这应该比设置apache更容易。代码可以在此处找到。
不隶属于 StackOverflow