4.3.2. HTTP(S)-Requests in Python

Die Python-Bibliothek “requests” ist eine leistungsstarke und benutzerfreundliche Bibliothek zur Durchführung von HTTP-Anfragen in Python. Sie ermöglicht Entwicklern das Senden von HTTP-Anfragen an Webserver und die Verarbeitung der erhaltenen Antworten.

4.3.2.1. Funktionen

Die “requests”-Bibliothek ist eine umfangreiche Sammlung von Funktionen, die verschiedene HTTP-Methoden wie GET, POST, PUT, DELETE und HEAD unterstützt. Entwickler können diese Bibliothek nutzen, um mühelos Anfragen an APIs, Webseiten oder andere HTTP-Ressourcen zu senden.

4.3.2.2. Verarbeitung der erhaltenen Antworten

Ein weiteres nützliches Feature der “requests”-Bibliothek ist die einfache Verarbeitung der erhaltenen Antworten. Entwickler können die Antwort je nach den Anforderungen der Anwendung auf unterschiedliche Weise verarbeiten. Die Bibliothek stellt Funktionen bereit, um die Antwort in Text, JSON oder binäre Daten umzuwandeln. Des Weiteren ist es möglich, den Statuscode der Antwort zu überprüfen, um den Erfolg der Anfrage zu ermitteln und die empfangenen Daten entsprechend zu verarbeiten.

4.3.2.3. Nutzung mit Chat-Bots

Die “requests”-Bibliothek kann im Chat-Bot verwendet werden, um einen Link mit Textinhalt abzurufen und anschließend die “qrcode”-Bibliothek zu nutzen, um diesen Link in einen QR-Code zu konvertieren. Hier ist eine kurze Zusammenfassung der Vorgehensweise:

  1. Verwendung der “requests”-Bibliothek, um den gewünschten Link mit Textinhalt abzurufen.

  2. Verwenden der erhaltenen Daten, um den Link zu extrahieren.

  3. Verwenden der “qrcode”-Bibliothek, um den extrahierten Link in einen QR-Code zu konvertieren.

  4. Den generierten QR-Code im Chat-Bot anzeigen oder als Bilddatei speichern, um ihn den Benutzern zu präsentieren.

remote_qr = json.loads("{\"success\" : false}")

server_request = ServerRequest('https://example.com/qr/generate/')
data = {'string': '<h1>please dont hack me with html</h1>'}
response_text = server_request.send_request(params=data)

try:
    remote_qr = json.loads(response_text)
except json.JSONDecodeError:
    print('Eingabe ist kein gültiges JSON')

if remote_qr['success']:
    qrcode_generator = QRCodeGenerator(fill_color="#ff0000", back_color="#ffff00")
    image = qrcode_generator.generate_qr_code(remote_qr['url'])
    image.save("qr_code.png")
    print("QR-Code wurde erfolgreich generiert")
else:
    print(remote_qr['error'])

Zuerst wird eine Standardantwort für den QR-Code initialisiert, deren “success” Wert auf “false” gesetzt ist. Dann wird eine Serveranfrage an die URL gesendet, wobei die gewünschte Zeichenkette als Parameter mitgesendet wird. Die Antwort wird als Text gespeichert.

Anschließend wird versucht, die empfangene Antwort als JSON zu analysieren. Wenn die Analyse erfolgreich ist, wird überprüft, ob der Wert von “success” in der empfangenen Antwort “true” ist. Wenn dies der Fall ist, wird ein “QRCodeGenerator” Objekt erstellt und verwendet, um den QR-Code mit der angegebenen URL zu generieren. Das generierte Bild wird als “qr_code.png” gespeichert und eine Erfolgsmeldung wird ausgegeben.

Wenn der “success” Wert in der Antwort “false” ist, wird die entsprechende Fehlermeldung ausgegeben.