Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

433
Views
Acceso a todas las cookies en la respuesta de prueba de Flask

Después de realizar una solicitud con el cliente de prueba de Flask, quiero acceder a las cookies que establece el servidor. Si itero sobre response.headers , veo varios encabezados Set-Cookie , pero si hago response.headers["Set-Cookie"] , solo obtengo un valor. Además, los encabezados son cadenas sin analizar que son difíciles de probar.

 response = client.get("/") print(response.headers['Set-Cookie']) 'mycookie=value; Expires=Thu, 27-Jun-2019 13:42:19 GMT; Max-Age=1800; Path=/' for item in response.headers: print(item) ('Content-Type', 'application/javascript') ('Content-Length', '215') ('Set-Cookie', 'mycookie=value; Expires=Thu, 27-Jun-2019 13:42:19 GMT; Max-Age=1800; Path=/') ('Set-Cookie', 'mycookie2=another; Domain=.client.com; Expires=Sun, 04-Apr-2021 13:42:19 GMT; Max-Age=62208000; Path=/') ('Set-Cookie', 'mycookie3=something; Domain=.client.com; Expires=Thu, 04-Apr-2019 14:12:19 GMT; Max-Age=1800; Path=/')

¿Por qué acceder al encabezado Set-Cookie solo me da un encabezado? ¿Cómo puedo acceder a las cookies y sus propiedades para realizar pruebas?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

response.headers es un MultiDict , que proporciona el método getlist para obtener todos los valores de una clave dada.

 response.headers.getlist('Set-Cookie')

Podría ser más útil examinar las cookies que tiene el cliente, en lugar de los encabezados Set-Cookie procesar específicos devueltos por una respuesta. client.cookie_jar es una instancia de CookieJar , la iteración produce instancias de Cookie . Por ejemplo, para obtener el valor de la cookie con el nombre "user_id":

 client.post("/login") cookie = next( (cookie for cookie in client.cookie_jar if cookie.name == "user_id"), None ) assert cookie is not None assert cookie.value == "4"
over 4 years ago · Santiago Trujillo Report

0

La respuesta anterior me guió a una versión ligeramente alternativa según lo que quieras hacer con la cookie.

Intenté usar client.cookie_jar , pero estaba probando algunos atributos "no estándar" como HttpOnly y SameSite . La cookie devuelta por client.cookie_jar no las devuelve, así que inspecciono el encabezado Set-Cookie :

 from werkzeug.http import parse_cookie cookies = response.headers.getlist('Set-Cookie') cookie = next( (cookie for cookie in cookies if expected_cookie_name in cookie), None ) assert cookie is not None cookie_attrs = parse_cookie(cookie) assert cookie_attrs[expected_cookie_name] == expected_cookie_value assert 'Secure' in cookie_attrs assert 'HttpOnly' in cookie_attrs assert cookie_attrs['SameSite'] == 'Lax'
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!