python - 如何获取 HTTP 重定向目标的 URL?

标签 python http google-app-engine redirect

我正在编写客户端 Python 单元测试,以验证我的 Google App Engine 网站上的 HTTP 302 重定向是否指向正确的页面。到目前为止,我一直在调用 urllib2.urlopen(my_url).geturl()。但是,我遇到了 2 个问题:

  1. geturl() 返回的 URL 似乎不包含像 ?k1=v1&k2=v2 这样的 URL 查询字符串;我怎样才能看到这些? (我需要检查我是否正确地将访问者的原始 URL 查询字符串传递给了重定向页面。)
  2. geturl() 显示任何附加重定向后的最终 URL。我只关心第一个重定向(来 self 网站的那个);在那之后我对任何事情都不可知。例如,假设我的站点是 example.com。如果用户请求 http://www.example.com/somepath/?q=foo,我可能想将他们重定向到 http://www.anothersite.com?q=富。其他网站可能会再次重定向到 http://subdomain.anothersite.com?q=foo,这是我无法控制或预测的。如何确保我的重定向是正确的?

最佳答案

fetch function 提供 follow_redirects=False ,然后从响应中的“location” header 中检索第一个重定向的位置,如下所示:

response = urlfetch.fetch(your_url, follow_redirects=False)
location = response.headers['Location']

关于python - 如何获取 HTTP 重定向目标的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353689/

相关文章:

python - 如何检查一个对象是否是某个 PyTorch 优化器?

python - 基于每个应用程序的 Django 身份验证

angular - 在浏览器控制台Angular 8中禁用HTTP方法服务器的错误

python - 使用 Python 分块 HTTP 上传

python - 通过 App Engine 发送的邮件中的附件无法在每个邮件客户端/设备上读取

android - App Engine - RequestFactory 与 servlet 与其他方法

python - 使用 Python SSL 的匿名 DH 连接

python - 在 Python 中按索引合并列表

使用 mocha 的 nodejs(连接)应用程序的 http 请求测试?

google-app-engine - 通过 SSL 的 Appengine 数据?