Hallo strom,
du musst den IOHandler initialisieren:
idHTTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
Ich würde es eher so machen:
Delphi-Quellcode:
var
params: TStringList;
request, content, response: string;
// i: Integer;
begin
IdHTTP1.request.Charset := 'utf-8';
IdHTTP1.request.BasicAuthentication := true;
IdHTTP1.request.Username := '******';
IdHTTP1.request.Password := '******';
IdHTTP1.request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.request.Host := '192.168.0.69';
params := TStringList.Create;
try
params.Add('type=pocsag');
params.Add('address=1234567');
params.Add('flags=0');
params.Add('function=a');
params.Add('message=hallo1111');
response := IdHTTP1.Post('http://192.168.0.69/telegramin/alarmgeber/input.xml', params); // Hier ist der POST-Request
finally
params.Free;
end;
end;
Mit dem ganz neuen
Indy Build wird der IOHandler jetzt auch automatisch initialisiert (ich glaube aber nur wenn man dies über die GET, POST, ... Funktionen abwickelt).
Siehe auch:
http://www.delphipraxis.net/160152-i...protokoll.html
EDIT: Ich habe gerade nachgeschaut. Wie ich schon sagte, mit den neuen
Indy's wird der IOHandler automatisch erstellt (Typ: TIdSSLIOHandlerSocketBase; siehe:
CheckAndConnect()). Dies wird aber erst durch ConnectToHost() und dies durch DoRequest() aufgerufen, welches die ganzen GET, POST, HEAD usw. bündelt. Also allein die Erzeugung der TIdHTTP Komponente reicht nicht aus (was ich schon sagte).