我需要測試與客戶端的一些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