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

543
Vistas
FastAPI: error al enviar el cuerpo de la solicitud a través de GET

Estoy actualizando algunas API que he codificado usando Python y FastAPI. En la versión real, estoy enviando la información usando Query Paramenters , pero ahora quiero intentar enviar los datos usando Request Body , pero el código no parece funcionar.

A continuación, puede ver una muestra del código en el lado del servidor donde FastAPI debería devolver el texto que estoy enviando (para este ejemplo, solo la información "string_to_show", pero en el proyecto real habría más campos). Sé que es un código base, pero esto es solo una muestra.

 from fastapi import FastAPI, Path, Query from pydantic import BaseModel import uvicorn app = FastAPI() class req_body(BaseModel): string_to_show:str @app.get("/test/") def scraper_shield(payload:req_body): request_feedback = str(payload.string_to_show) return request_feedback if __name__ == "__main__": uvicorn.run(app)

En el lado del cliente , estoy usando este código, que simplemente envía la carga útil al servidor.

 import requests payload = {'string_to_show':'Python is great!'} r = requests.get('http://127.0.0.1:8000/test/', params=payload) print(r.text)

Al enviar la solicitud, debería obtener la cadena "¡Python es genial!" pero en cambio recibo algunos errores , debajo de los mensajes del Cliente y del Servidor:

  • CLIENTE: {"detalle":[{"loc":["cuerpo"],"mensaje":"campo requerido","tipo":"valor_error.perdido"}]}
  • SERVIDOR: "GET /test/?string_to_show=Python+is+great%21 HTTP/1.1" 422 Entidad no procesable
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Se supone que los métodos GET no tienen cuerpo. https://dropbox.tech/developers/limitations-of-the-get-method-in-http

El método POST está destinado a eso. Si realmente necesita una parametrización sólida con GET (pero realmente lo reconsideraría), piense en ponerlos en encabezados personalizados.

over 4 years ago · Santiago Trujillo Denunciar

0

Está enviando los parámetros como cadenas de consulta cuando usa r = requests.get('http://127.0.0.1:8000/test/', params=payload) . En su lugar, debe usar r = requests.get('http://127.0.0.1:8000/test/', json=payload) que creará un cuerpo de solicitud y lo enviará correctamente. Esto es lo que también ve en los errores, que básicamente le indican que falta el cuerpo requerido.

over 4 years ago · Santiago Trujillo Denunciar
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