Escribiré un script de python que escuche un webhook para una herramienta personalizada que enviará json (también podrían admitir otro formato) en un puerto que pueda especificar.
¿Cómo escribir algo similar al comando de Linux: "nc -l 9000" para volcar la salida que obtengo en ese puerto (encabezado y cuerpo)?
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): print() <- how to get the data here? return {"message": "ok"}Quiero imprimir el contenido en la terminal, luego puedo ver fácilmente lo que obtendré y tomar medidas al respecto. No estoy seguro de qué debería reproducirles si eso es necesario (necesito verificar esto, aún no han terminado con su parte).
Así que creo que estás buscando Request .
Contiene mucha información (incluyendo, cuerpo, formulario, encabezados, etc.) sobre la solicitud.
from fastapi import FastAPI, Request app = FastAPI() @app.get("/") def read_root(request: Request): print(request.headers) return {}Así que ahora, si envío una solicitud a este punto final, me devolverá
{ "host":"127.0.0.1:8000", "connection":"keep-alive", "accept":"application/json", "sec-fetch-site":"same-origin", "sec-fetch-mode":"cors", "sec-fetch-dest":"empty", "referer":"http://127.0.0.1:8000/docs", "accept-encoding":"gzip, deflate, br", "accept-language":"en-US,en;q=0.9,tr;q=0.8", "cookie":"csrftoken=sdf6ty78uewfıfehq7y8fuq; _ga=GA.1.11242141,1234423" }Luego puede extraer la aceptación de request.headers
Si solo necesitas eso, también puedes hacerlo
@app.get("/") def read_root(request: Request): print(request.headers['accept']) return {}Esto regresará solo
Out: application/json