Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Clever Internet Suite HTTPS Problem (https://www.delphipraxis.net/184840-clever-internet-suite-https-problem.html)

IMPEGA 24. Apr 2015 10:12

Clever Internet Suite HTTPS Problem
 
Hi.
Ich arbeite mit Delphi7.

Ich habe die Clever Internet Suite entdeckt.
So weit gefällt mir die Suite sehr gut. Ich komme allerdings bei HTTPS nicht weiter.
Ich versuche so gut wie möglich das Problem zu schildern.

Ich erstelle ganz normal eine VCL Anwendung. Auf der Form platziere ich clHTTP1.
Ich setze die Eigenschaften
- UseTLS auf ctAutomatic
- LSFlags tfUseTLS auf Ttrue

Nun lade ich eine HTTPS Seite und bekomme mein Response. So wie es sein sollte.
zB. diese Seite https://proxy.org/cgi_proxies.shtml

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Response: TStrings;
begin
  Memo1.Lines.Clear();
  Response := TStringList.Create();
    try
      clHttp1.Get(edtUrl.Text, Response);
        if SameText('UTF-8', clHttp1.ResponseHeader.CharSet) then
           Memo1.Lines.Text := TclTranslator.TranslateFromUtf8(Response.Text)
        else
          Memo1.Lines.Assign(Response);
    finally
      Response.Free();
    end;
end

Nun zu meinem Problem.
Ich versuche es in eine Unit auszulagern und das Gsanze zur Laufzeit zu erstellen.
Hier komme mit mit den Flags nicht klar.

Hier das relevante Teil von der Unit.
Delphi-Quellcode:
unit cIHTTP_GET_POST;

interface

uses
  Windows, SysUtils, Classes, clTcpClient, clHttp, clHtmlParser,
  clHttpRequest, ShellAPI, clSspiTls;

  function clHTTP_GET(const URL: string; TimeOut: Integer): UTF8String;

implementation

uses Splitter;

function clHTTP_GET(const URL: string; TimeOut: Integer): UTF8String;
var
  Response : TStrings;
  clHttp1  : TclHttp;
begin
  Response       := TStringList.Create();
  clHttp1         := TclHttp.Create(nil);
  clHttp1.TimeOut := TimeOut * 1000;
  clHttp1.UseTLS := ctAutomatic;

  clHttp1.TLSFlags := tfUseTLS; //Das ist der Fehler. Hiet müsste tfUseTLS auf True gesetzt werden.

    try
      clHttp1.Get(URL, Response);
      Result := Response.Text;
    finally
      FreeAndNil(Response);
      FreeAndNil(clHttp1);
    end;
end;

end.
Ich habe die ganze Hilfe durchstöbert und auch ordentlich gegoogelt.
Leider finde ich nichts zu dem Thema.
Es sollte später aus einem Thread heraus abgerufen werden deshalb sollte es zur Lsufzeit erstellt werden.
Meine versuche sind leider gescheitert.
Vielleicht hat Jemand ein Rat für mich.

EDIT:
Code korrigiert. Nun funktioniert es.

Klaus01 24. Apr 2015 10:17

AW: Clever Internet Suite HTTPS Problem
 
.. vielleicht, da es eine Option ist.
Delphi-Quellcode:
clHttp1.TLSFlags := [tfUseTLS];
Grüße
Klaus

IMPEGA 24. Apr 2015 10:29

AW: Clever Internet Suite HTTPS Problem
 
Nein,so einfach ist es nicht.
Natürlich habe ich schon einiges probiert bevor ich gepostet habe.
Das ist die Meldung auf deine Zeile.

[Fehler] main.pas(52): Undefinierter Bezeichner: 'tfUseTLS'

Klaus01 24. Apr 2015 10:47

AW: Clever Internet Suite HTTPS Problem
 
neuer Versuch..

vielleicht musst Du noch die Unit clTlsSocket einbinden.

Grüße
Klaus

IMPEGA 24. Apr 2015 10:58

AW: Clever Internet Suite HTTPS Problem
 
Nein leider bringt es auch nichts.
Ich habe auch schon damit versucht
clCertificate, clCertificateStore, certfrm;

Leider bringt es nichts.

mjustin 24. Apr 2015 11:09

AW: Clever Internet Suite HTTPS Problem
 
Wenn eine Komponente zur Design-Zeit auf das Formular gelegt wird werden eine oder mehrere Units der uses-Klausel hinzugefügt. Prüfe daher einfach mal, welche Units aus dem funktionierenden Formular noch nicht in der Uses-Klauses der neuen Unit enthalten sind, und füge sie hinzu.

Die Chance, das das funktioniert, liegt bei 100 Prozent. Mindestens ;)

IMPEGA 24. Apr 2015 11:18

AW: Clever Internet Suite HTTPS Problem
 
Das war das erste was ich versucht habe.
ich habe parallel eine Form erstellt. Die Komponente auf die Form gelegt.
Die Funktion in die Form 2 hinzugefügt und verlinkt.
In der Form2 die Option von clHTTP1 TLSFlags tfUseTLS auf True gesetzt.
So funktioniert es. Nun nehme ich die ganze Deklaration von der Form2 und füge es der Unit hinzu.

Nun taucht der Fehler auf.
Damit habe ich dein Vorschlag in jeder Variante ausprobiert.
Es bringt nichts.
Zitat:

Die Chance, das das funktioniert, liegt bei 100 Prozent. Mindestens
Das wurde widerlegt.

EDIT:
Ich habe es gefunden.
Danke für die Unterstützung.

So ein Dreck. Nirgendwo kann man es nachlesen.

Es muss clSspiTls deklariert werden.
Nun läuft es.

Bentissimo 24. Apr 2015 11:38

AW: Clever Internet Suite HTTPS Problem
 
Ich schätze, dass die Typ- oder Konstantendefinition für tfUseTLS in einer Unit versteckt ist, die nicht automatisch mit dem Hinzufügen der Komponente eingefügt wird.

Daher würde ich als erstes prüfen welche Unit dies tatsächlich ist.

IMPEGA 24. Apr 2015 11:56

AW: Clever Internet Suite HTTPS Problem
 
Du hast meine Antwort übersehen.

Ich habe es gefunden.

Problem gelöst.

Bentissimo 24. Apr 2015 12:01

AW: Clever Internet Suite HTTPS Problem
 
Dein Edit geschah einer Minute nach meiner Antwort. :cyclops:

Hauptsache gelöst! :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.
Seite 1 von 2  1 2      

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