requests ejemplo close biblioteca auth python oauth-2.0 session-cookies python-requests http-request

ejemplo - Actualizar cookies en sesión usando el módulo python-requests



python requests session close (2)

Estoy usando el módulo python-requests para manejar solicitudes y respuestas de OAuth. Quiero establecer el access_token recibido (el contenido de la respuesta como dict ) en el objeto requests.session.cookies .

¿Cómo puedo actualizar las cookies existentes de la sesión con la respuesta recibida del servidor?

[EDITAR]

self.session = requests.session(auth=self.auth_params) resp = self.session.post(url, data=data, headers=self.headers) content = resp.content

Quiero hacer algo como:

requests.utils.dict_from_cookiejar(self.session.cookies).update(content)

Aquí, requests.utils.dict_from_cookiejar(self.session.cookies) devuelve dict con una clave de sesión. Ahora, deseo actualizar el contenido de respuesta recibido en self.session.cookies .


requests pueden hacer eso por usted, siempre que diga que todas las requests que hace son parte de la misma session :

>>> import requests >>> s = requests.session() >>> s.get(''https://www.google.com'') <Response [200]> >>> s.cookies <<class ''requests.cookies.RequestsCookieJar''>[Cookie(version=0, name=''NID''...

Las solicitudes posteriores realizadas utilizando s.get o s.post reutilizarán las cookies.

Para agregar una Cookie por su cuenta, simplemente la debe agregar a su próxima solicitud, se conservará en su sesión para las siguientes solicitudes:

>>> s.get(''https://www.google.com'', cookies = {''cookieKey'':''cookieValue''})


Este código funcionó para mí. Espero que pueda ayudar a alguien más.

Deseo actualizar la variable sessioncookies con los valores de respuesta recibidos de la solicitud posterior. por lo tanto, el mismo valor de solicitud se puede usar en otra solicitud de publicación / obtención.

aquí, lo que hice:

1) modificó el módulo de solicitudes a la versión 1.0.3.

2) creó 2 funciones

session = requests.session() def set_SC(cookie_val): for k,v in cookie_dict.iteritems(): if not isinstance(v, str): cookie_dict[k] = str(v) requests.utils.add_dict_to_cookiejar(session.cookies, cookie_val) def get_SC(): return requests.utils.dict_from_cookiejar(session.cookies) In another function: setSC(response.content)