import json import threading from http.server import BaseHTTPRequestHandler, HTTPServer from urllib.request import Request, urlopen class Handler(BaseHTTPRequestHandler): def do_POST(self): length = int(self.headers["Content-Length"]) data = json.loads(self.rfile.read(length)) body = json.dumps({"text": "Solicitud recibida: " + data["input"]}) self.send_response(200) self.send_header("Content-Type", "application/json") self.end_headers() self.wfile.write(body.encode()) def log_message(self, *args): pass server = HTTPServer(("127.0.0.1", 0), Handler) thread = threading.Thread(target=server.serve_forever, daemon=True) thread.start() try: payload = json.dumps({"input": "Hola, IA"}).encode() request = Request( "http://127.0.0.1:" + str(server.server_port), data=payload, headers={"Content-Type": "application/json"} ) with urlopen(request, timeout=3) as response: data = json.load(response) if not isinstance(data.get("text"), str): raise ValueError("Respuesta inválida") print(data["text"]) finally: server.shutdown() server.server_close() thread.join()