Cur*_*rro 17 python google-app-engine python-2.7 python-requests
我在Google App Engine上使用了python-request,但它没有像HTTPS那样正常工作.我们来看一个例子:
import requests
requests.get('https://www.digitalocean.com')
Run Code Online (Sandbox Code Playgroud)
如果我在终端中执行它,该行将完美运行.响应是200 OK(没有重定向).
但是,如果我在GAE上执行它,则会引发TooManyRedirects错误.试图找出我用allow_redirects = False执行的问题是什么,我可以看到响应是重定向(301),它指向同一个url!('location'标头值为' https://www.digitalocean.com ').这显然(当allow_redirect = True时)反复发生,直到引发TooManyRedirects错误.
因此,似乎python请求不适用于HTTPS的GAE(我已经使用多个URL进行了测试).然而HTTP工作得很好.
关于发生了什么的任何想法?
提前致谢.
rat*_*ray 17
降级到请求== 2.1.0对我有用.
拥有最新的urllib3对于解决不相关的错误非常重要(import pwd我记得).
希望App Engine尽快修复,因为请求不会.
编辑:
我想你也可以通过在sessions.py中注释第161-175行来修补最新的请求.未经测试.
现在有比更改requests版本更好的解决方案。正如官方文档中所建议的那样,您可以使用猴子补丁requests与 Google App Engine 配合使用。
首先安装请求工具带:
pip install -t lib requests-toolbelt
Run Code Online (Sandbox Code Playgroud)
然后在您的main.py文件(或等效文件)中:
import requests_toolbelt.adapters.appengine
requests_toolbelt.adapters.appengine.monkeypatch()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4100 次 |
| 最近记录: |