![]() |
Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Meine PICOLAY-Website wurde auf HTTPS umgestellt. Jetzt funktionieren die Internetzugriffe aus dem Programm heraus nicht mehr.
Delphi-Quellcode:
Wer hilft mir bei der Umstellung des Codes? Bin aus der Generation, für die das Internet Neuland ist ;)
procedure TForm1.ShowPICOLAYhomepage1Click(Sender: TObject);
begin try if UrlExists('https://www.picolay.de/whatsnew.htm', true) then begin ShellExecute(Application.Handle, 'open', PChar('https://www.picolay.de'), nil, nil, SW_ShowNormal); end; except MessageDlg('Sorry, [url]www.picolay.de[/url] not found' , mtConfirmation, [mbok], 0); end; end; procedure CheckforNewVersion; var MyIdHTTP: TIdHTTP; currentversion, webversion : string; connected : boolean; begin connected := false; try connected := UrlExists('https://www.picolay.de/latestversion.txt', true); except; end; if connected then begin currentversion := '20240215'; webversion := '0'; MyIdHTTP := TIdHTTP.Create(Form1); try webversion := MyIdHTTP.Get('https://www.picolay.de/latestversion.txt'); finally FreeAndNil(MyIdHTTP); end; if webversion > currentversion then begin MessageDlg('New free version of PICOLAY available! Please' +#13+ 'download from [url]www.picolay.de[/url] as soon as possible.' , mtinformation, [mbok], 0); end; end; end; Vielen Dank, Theseus |
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Statt UrlExists kannst du auch MyIdHttp.Head verwenden. Das ruft nur den Header ab, so dass man weiß, ob die Adresse ein gültiges Ergebnis liefert.
Um dabei https zu verwenden, benötigst du die OpenSSL Bibliotheken sowie einen entsprechenden IO Handler. Dazu gibt es schon etwas in der Doku: ![]() |
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Bein Indy muß man doch für HTTPS erst noch die nötige SSLLib hinzufügen?
![]() Versuch einfach mal das neue delphieigene TNetHTTPClient anstatt TIdHTTP, Dort den Parameter SecureProtocols beachten. Was macht eigentlich URLExits? Head ist nicht nötig, da die Datei so klein ist, dass auch direkt GET verwendet kann, anstatt doppelt abzufragen. (der Head ist hier um ein Vielfaches größer, als die eigentlichen 8 Byte an Daten) Wozu überhaupt erst auf Exists prüfen, anstatt direkt runtertuladen? So oder so machst du da doch unnötig mehrfache abfragen. Und wenn du Angst hast es könnte etwas hängen (die GUI), dann mach's doch in einem Thread. :zwinker: PS: Wie schön könnte man den Code lesen, mit einem [/DELPHI]...[/DELPHI] drumrum. :stupid: |
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Ich würde für sowas die Overbyte-Komponenten nutzen, vergiss Indy.
![]() |
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Indy muss man aber nicht zusätzlich einbinden, sondern ist bei Delphi dabei. Das ist für spätere Updates der Delphiversion einfacher. Insofern sehe ich, auch wenn ich ICS selbst gut finde, für diesen Zweck hier keinen Grund für einen Umstieg.
|
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Delphi-Updates kommen so selten, bis dahin wurde ICS schon 3x aktualisiert und angepasst.
|
AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
Herzlichen Dank für die freundlichen Antworten! Ich sehe schon, das ist kein ganz einfaches Teilprojekt, dem ich mich etwas ausführlicher werde widmen müssen. Tatsächlich habe ich schon eine Zwischenlösung gefunden: Ich konnte beim Provider für meine Domain einstellen: HTTPS-Modus nicht erzwingen. Damit lässt sich der alte Code noch ohne Fehlermeldung nutzen :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz