我正在编写客户端Python单元测试,以验证我的Google App Engine站点上的HTTP 302重定向是否指向正确的页面。到目前为止,我一直在给urllib2.urlopen(my_url).geturl()
打电话。但是,我遇到了2个问题:
?k1=v1&k2=v2
这样的URL查询字符串;我如何才能看到这些字符串?(我需要检查是否正确地将访问者的原始URL查询字符串传递到了重定向页面。)geturl()
显示任何其他重定向后的最终URL。我只关心第一个重定向(从我的网站),我不知道在那之后的任何事情。例如,假设我的站点是example.com
。如果用户请求http://www.example.com/somepath/?q=foo
,我可能希望将它们重定向到http://www.anothersite.com?q=foo
。另一个站点可能会做另一个重定向到http://subdomain.anothersite.com?q=foo
,我无法控制或预测。如何确保重定向正确?
使用httplib(并查看响应的返回状态和位置头)来避免阻碍测试的“自动跟踪重定向”。有一个很好的例子here。
将
follow_redirects=False
提供给fetch function,然后从响应中的“location”头检索第一个重定向的位置,如下所示:相关问题 更多 >
编程相关推荐