Herramientas de usuario

Herramientas del sitio


informatica:lenguajes_de_programacion:python:python_simplehttpserver

¡Esta es una revisión vieja del documento!


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.1769384058.txt.gz · Última modificación: 2026/01/25 23:34 por admin