如何获取HTTP重定向目标的URL?
我正在为我的Google App Engine网站编写客户端的Python单元测试,以验证HTTP 302重定向是否指向正确的页面。目前,我一直在使用urllib2.urlopen(my_url).geturl()
来获取重定向的URL。不过,我遇到了两个问题:
- 通过
geturl()
返回的URL似乎不包含像?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
,而这个我无法控制或预测。我该如何确保我的重定向是正确的呢?