informatica:lenguajes_de_programacion:python:python_simplehttpserver
Python Simple HTTP Server
Safe thread, multihilo, multiusuarios, lo normal solo un usuario en un hilo:
import http.server import socketserver PORT = 8000 class CustomHandler(http.server.SimpleHTTPRequestHandler): def do_POST(self): content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length) print(f"Received POST data: {post_data.decode('utf-8')}") self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() response_message = b"POST request received successfully!" self.wfile.write(response_message) with socketserver.TCPServer(("", PORT), CustomHandler) as httpd: print(f"Serving at port {PORT}, ready to handle POST requests") httpd.serve_forever()
curl -X POST -d "Hello, Server!" http://localhost:8000
este código vuelve a hacer un llamado con Urllib3
import urllib.request import shutil headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'} import http.server import socketserver PORT = 8000 class CustomHandler(http.server.SimpleHTTPRequestHandler): def do_POST(self): content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length) #print(f"Received POST data: {post_data.decode('utf-8')}") url = post_data.decode('utf-8') request = urllib.request.Request( url , headers=headers) r = urllib.request.urlopen(request).read() self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() response_message = b"POST request received successfully! " + r self.wfile.write(response_message) with socketserver.TCPServer(("", PORT), CustomHandler) as httpd: print(f"Serving at port {PORT}, ready to handle POST requests") httpd.serve_forever()
informatica/lenguajes_de_programacion/python/python_simplehttpserver.txt · Última modificación: 2026/01/29 16:16 por admin
