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.