[英]How do I get the URL of an HTTP redirect's target?
我正在編寫客戶端Python單元測試,以驗證我的Google App Engine站點上的HTTP 302重定向是否指向正確的頁面。 到目前為止,我一直在調用urllib2.urlopen(my_url).geturl()
。 但是,我遇到了兩個問題:
?k1=v1&k2=v2
; 我怎么能看到這些? (我需要檢查我是否正確地將訪問者的原始URL查詢字符串傳遞到重定向頁面。) geturl()
顯示任何其他重定向后的最終URL。 我只關心第一次重定向(來自我網站的重定向); 在此之后,我對任何事情都不了解。 例如,假設我的網站是example.com
。 如果用戶請求http://www.example.com/somepath/?q=foo
,我可能希望將其重定向到http://www.anothersite.com?q=foo
。 另一個網站可能會另外重定向到http://subdomain.anothersite.com?q=foo
,這是我無法控制或預測的。 如何確保我的重定向是正確的? 對提取函數提供follow_redirects=False
,然后從響應中的“location”標題中檢索第一個重定向的位置,如下所示:
response = urlfetch.fetch(your_url, follow_redirects=False)
location = response.headers['Location']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.