Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute (https://www.delphipraxis.net/214666-umstellung-auf-https-wie-geht-jetzt-urlexists-get-shellexecute.html)

Theseus 18. Feb 2024 11:35

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:
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;
Wer hilft mir bei der Umstellung des Codes? Bin aus der Generation, für die das Internet Neuland ist ;)

Vielen Dank,
Theseus

jaenicke 18. Feb 2024 12:29

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:
https://docwiki.embarcadero.com/RADS...rk_Connections

himitsu 18. Feb 2024 13:03

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?
https://stackoverflow.com/questions/...10-3-with-indy

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:

DieDolly 18. Feb 2024 13:28

AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
 
Ich würde für sowas die Overbyte-Komponenten nutzen, vergiss Indy.

https://wiki.overbyte.eu/wiki/index.php/ICS_Download

jaenicke 18. Feb 2024 14:13

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.

DieDolly 18. Feb 2024 14:17

AW: Umstellung auf https: Wie geht jetzt UrlExists, Get, Shellexecute
 
Delphi-Updates kommen so selten, bis dahin wurde ICS schon 3x aktualisiert und angepasst.

Theseus 18. Feb 2024 16:00

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 02:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz