Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
Contenido de respuesta más corto que Content-Length

Estoy haciendo una aplicación FastAPI , con una función que se autentica en una instancia de CouchDB . Para solicitar Couchdb, uso la biblioteca (aún sin mantenimiento) python-couchdb .

Aquí está la parte relevante del código que ilustra mi problema:

 from fastapi import FastAPI from couchdb import http resource = http.Resource(url, http.Session()) from couchdb import Unauthorized from pydantic import BaseModel app = FastAPI() class RegisteredUser(BaseModel): email: str password: str @app.post("/login") async def log_user(user: RegisteredUser): # some email format verifications here # ... try: status, headers, _ = resource.post_json('_session', { 'name': user.email, 'password': user.password, }) except Exception as e: if isinstance(e, Unauthorized): return 403 else: return 500 # tests print(headers)

Los encabezados se ven como:

 Cache-Control: must-revalidate Content-Length: 54 Content-Type: application/json Date: Sat, 08 Aug 2020 19:19:49 GMT Server: CouchDB/3.1.0 (Erlang OTP/22) Set-Cookie: AuthSession=am9zZWJvdmVAam9zZWJvdmUuY29tOjVGMkVGQUQ2Op-UUD22VvdxYzbMNp92e30Er_z0; Version=1; Expires=Sat, 08-Aug-2020 20:59:50 GMT; Max-Age=6000; Path=/; HttpOnly

En este punto (si no aparece ningún error), me gustaría devolver al cliente (navegador) la cookie que proporciona CouchDb. Algo como:

 ... # tests print(headers) if status == 200 and 'Set-Cookie' in headers: return JSONResponse(content=True, headers=headers) else: return status
  1. No estoy acostumbrado a cookies de sesión y no estoy seguro de si debo devolver los encabezados completos o solo la parte de headers['Set-Cookie']

  2. Haga lo que haga, termino con el mismo mensaje de error

 RuntimeError: Response content shorter than Content-Length

¿Podrías explicarme qué dice el error y cómo puedo resolver mi caso? Ty!

Encontré este subproceso SO pero no tengo ni idea ni el middleware FastAPI mirando a escondidas las respuestas


Aquí hay una solución:

 if status == 200 and 'Set-Cookie' in headers: return JSONResponse(content=True, headers={ 'Set-Cookie' : headers['Set-Cookie'] }) else: return status

Ty @HernánAlarcón

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda