Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi und https - TIdHTTP vs. THttpClient

  Alt 24. Apr 2019, 12:43
Da die Beteiligung "drüben" in der EE etwas mau ist, frage ich hier nochmal nach ...

In meinem mp3-Player parse ich für die Suche nach Liedtexten eine Webseite. Das ist mal wieder "kaputt". Zum einen wurde der Quelltext der Seite geändert (d.h. ich muss das parsen des html-Codes anpassen), zum anderen wurde die Seite komplett von http auf https umgestellt. Jetzt muss ich also gucken, wie ich da am besten Zugriff kriege.

Möglichkeit 1: Weiter mit Indy, einem IOHandler, und die OpenSSL-Libraries mitliefern. Findet man ja genug Code-Beispiele, und habe ich auch schon mal woanders so genutzt.

Möglichkeit 2: THttpClient aus den neuen Delphi-Versionen nutzen (System.Net.URLClient, System.Net.HttpClient). Dabei werden wohl die bei Windows mitgelieferten Bibliotheken dafür genutzt. Macht ggf. unter nicht voll gepatchten Windows-7 Probleme, aber das bekommt man in den Griff, wenn man explizit die neueren Protokolle setzt, was unter W7 per Default nicht gemacht wird, also
HttpClient.SecureProtocols := [THTTPSecureProtocol.TLS12, THTTPSecureProtocol.TLS11]; Zusätzlich gibt es da noch einen anderen Bug in Tokyo, der bei bestimmten URLs (anscheinend bei URL-kodierten Umlauten in der URL?) eine Exception schmeißt, was aber in Rio behoben ist. Das ist wohl noch nicht so ganz ausgereift ...

Da ich unerfahren auf dem Gebiet bin - gibt es da irgendwo noch versteckte Fallstricke? Oder was sind die Vor- und Nachteile der beiden Varianten? Generell muss ich da auch etwas mehr im Code umbauen, da z.B. bei einem 404 Indy eine Exception wirft, der HttpClient aber nicht ...

So wie ich das sehe, muss ich bei (1) zusätzliche Dateien ausliefern, und muss mich ggf. um das patchen kümmern, wenn es da Sicherheitsprobleme gibt. Bei (2) schiebe ich das komplett auf das Betriebssystem, muss dann aber mindestens Windows 7 (?) voraussetzen. Beides sind ja keine besonders dicken Einschränkungen - ich würde aktuell (2) vorziehen. Was meint ihr?

(Crosspost Entwickler-Ecke)
The angels have the phone box.
  Mit Zitat antworten Zitat