2010-02-18 8 views
6

¿Cómo envío el encabezado "Set-Cookie" cuando se trabaja con un BaseHTTPServerRequestHandler y Cookie? BaseCookie y los niños no proporcionan un método para generar el valor que se pasará a send_header(), y *Cookie.output() no proporciona un delimitador de línea HTTP.Enviando "Set-Cookie" en un servidor HTTP de Python

¿Qué clase de Cookie debería estar usando? Dos han sobrevivido en Python3, ¿cuáles son las diferencias?

Respuesta

3

Use C = http.cookie.SimpleCookie para guardar las cookies y luego C.output() para crear los encabezados.

Example here

El controlador de solicitudes tiene un atributo wfile, que es el socket.

req_handler.send_response(200, 'OK') 
req_handler.wfile.write(C.output()) # you may need to .encode() the C.output() 
req_handler.end_headers() 
#write body... 
+0

¿qué ocurre con el envío? –

+0

@Tor este envío no funciona, SimpleCookie no genera un encabezado completo –

+0

Por supuesto que necesita agregar más encabezados que solo las cookies ... Pensé que era obvio. –