我試圖捕獲傳出的HTTP請求並將其替換爲另一個。比如我有一個應用程序,發起請求www.xxxxxxxxxx.com/something
我需要抓住這一請求,而不是去www.xxxxxxxxxx.com/something我必須把它重定向到www.yyyyyyyyyyyy.com/somethingElse.
捕獲HTTP請求
的請求是由應用程序所做的,我無法訪問源代碼,因此必須在應用程序之外完成。
任何人都可以給我一個提示如何做到這一點?
我試圖捕獲傳出的HTTP請求並將其替換爲另一個。比如我有一個應用程序,發起請求www.xxxxxxxxxx.com/something
我需要抓住這一請求,而不是去www.xxxxxxxxxx.com/something我必須把它重定向到www.yyyyyyyyyyyy.com/somethingElse.
捕獲HTTP請求
的請求是由應用程序所做的,我無法訪問源代碼,因此必須在應用程序之外完成。
任何人都可以給我一個提示如何做到這一點?
您可以使用Fiddler自動回覆此
顯然,這,如果你有充分的訪問客戶機只會工作。 如果這需要從服務器完成,您可以在服務器上設置代理以將請求轉發到其他網頁。
檢查這個博客條目的細節
本博客文章介紹如何修改請求,但你可以很輕鬆地將它們轉發到不同的域。
也可以使用生成的證書 http://www.fiddler2.com/fiddler/help/httpsdecryption.asp
有些人似乎聲稱這個答案將無法正常工作使用這種技術通過HTTPS,我很欣賞他們由小提琴手的能力感到困惑的事實,但最終他們錯了,做你的研究。
甚至更簡單的解決方案可以覆蓋您的本地DNS,您可以使用Windows上的HOSTS文件執行此操作,請記住,這會將原始主機標頭髮送到您可能不想要的其他域。
不,你不能在客戶端做到這一點。
www.xxxxxxxxxx.com/something
on the server side
should redirect
到www.yyyyyyyyyyyy.com/somethingElse
。如果您在客戶端擁有root訪問權限,那麼使用fiddler完全有可能。 – 2012-04-04 08:20:50
如果https,你會怎麼做? – 2012-04-04 09:05:56
使用智能proxy或重寫URL server end。
OP想要捕獲傳出請求,而不是傳入請求,這不是一個答案。 – 2012-04-04 09:25:58
@helmus:「並將其替換爲另一個」 - 如果客戶端應用程序無法修改,則此*是解決問題的唯一方法。 – symcbean 2012-04-04 10:29:11
fiddler可以攔截來自客戶端應用程序的http(s)請求並「完全替換它們」到任何你想要的位置 – 2012-04-04 10:34:10
這是什麼類型的應用程序!通常情況下,如果你有像apache這樣的web服務器,lighttpd,它前面的cherokee或應用程序部署在它上面,你可以使用URL-Rewritting。
Apache可以做到這一點,甚至到不同的服務器。 http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
如果請求是從客戶端發起的,那麼您不能攔截該請求並將用戶重定向到某個其他地址。但是,您可以在HTTP管道中添加一個HTTPModule,它會在將響應發送到客戶端瀏覽器之前將URL更改爲其他地址。
「如果請求是從客戶端發起的,那麼您將無法截獲該請求並將用戶重定向到某個其他地址。」如果你想從服務器端攔截它,這是真的,但你可以從客戶端攔截它,這是(我相信)OP想要做的事情 – 2012-04-04 09:39:20
它是如何可能的,如果它是https? – 2012-04-04 09:06:19
@RameshPVK這是一個很好的問題,您可以使用欺騙CA根證書,隨小提琴一起提供。真的很容易建立。更多信息在這裏:http://www.fiddler2.com/fiddler/help/httpsdecryption.asp – 2012-04-04 09:15:53
Fidler是一個測試工具,它記錄請求並再次播放它們。在這樣做的時候,你可以改變主機地址。這不是問題的解決方案。 – 2012-04-04 09:18:44