Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Voici un script python permettant de simuler un mini server web et affichant les données reçues ici en http://localhost:8000 :

Bloc de code
languagepy
themeRDark
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qs
import json

class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
    
    def do_GET(self):
        # Parse l'URL et ses paramètres
        parsed_path = urlparse(self.path)
        query_components = parse_qs(parsed_path.query)
        
        # Affiche les informations dans la console
        print("Received GET request:")
        print(f"Path: {self.path}")
        print("Query parameters:")
        for key, values in query_components.items():
            for value in values:
                print(f"  {key}: {value}")
        
        # Prépare la réponse (simple pour le client)
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(b"<html><body><h1>GET request received</h1></body></html>")

    def do_POST(self):
        # Récupère la longueur des données envoyées
        content_length = int(self.headers['Content-Length'])
        # Récupère le corps de la requête
        post_data = self.rfile.read(content_length)
        
        # Tente de décoder les données comme JSON
        try:
            json_data = json.loads(post_data)
            print("Received POST request with JSON data:")
            print(json.dumps(json_data, indent=4))
        except json.JSONDecodeError:
            print("Received POST request with invalid JSON")
            json_data = {"error": "Invalid JSON"}
        
        # Prépare la réponse (simple pour le client)
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(b"<html><body><h1>POST request received</h1></body></html>")

def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port=8000):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print(f"Starting server on port {port}...")
    httpd.serve_forever()

if __name__ == '__main__':
    run()

...