yml standard increase how google flexible engine docs disk_size_gb developers create app python google-app-engine python-2.7 python-requests

standard - google app engine python



Las solicitudes de Python en Google App Engine no funcionan para HTTPS (2)

Ahora hay una solución mejor que cambiar la versión de sus requests . Como se sugiere en los documentos oficiales, puedes hacer requests parches para jugar bien con Google App Engine.

Primero install request-toolbelt:

pip install -t lib requests-toolbelt

Luego en su archivo main.py (o equivalente):

import requests_toolbelt.adapters.appengine requests_toolbelt.adapters.appengine.monkeypatch()

Estoy usando python-request en Google App Engine y no funciona como se esperaba para HTTPS. Veamos un ejemplo:

import requests requests.get(''https://www.digitalocean.com'')

Esa línea funciona perfectamente si la ejecuto en un terminal. La respuesta es 200 OK (sin redirecciones).

Sin embargo, si lo ejecuto en GAE, aparece un error de TooManyRedirects. Tratando de averiguar cuál es el problema que ejecuto con allow_redirects = False y puedo ver que la respuesta es una redirección (301) que apunta a la misma URL. (El valor del encabezado ''ubicación'' es '' https://www.digitalocean.com ''). Esto obviamente (cuando allow_redirect = True) ocurre una y otra vez hasta que se genera el error TooManyRedirects.

Entonces, parece que las solicitudes de python no están funcionando en GAE para HTTPS (he probado con varias URL). Sin embargo, HTTP funciona perfectamente.

¿Alguna idea de lo que está pasando?

Gracias por adelantado.


La degradación a las solicitudes == 2.1.0 funcionó para mí.

Tener un urllib3 actualizado es importante para resolver un error no relacionado ( import pwd , como recuerdo).

Esperemos que App Engine solucione esto pronto, ya que las solicitudes github.com/kennethreitz/requests/issues/1905 .

EDITAR:

Creo que también puede parchear esto en las últimas solicitudes comentando las líneas 161-175 en sessions.py . No probado