Hier ist ein simples Beispiel für einen HTTPS Upload mit
Indy 10.6.2, im Programmverzeichnis müssen dazu noch die aktuellen OpenSSL Bibliotheken (DLLs) liegen. Anstatt wie hier dargestellt einen TStringStream für die Nutzdaten zu erzeugen geht es natürlich auch mit einem TFileStream, den man für die hochzuladende Datei erstellt.
Delphi-Quellcode:
program JSONPostExample;
{$APPTYPE CONSOLE}
uses
IdHTTP, IdGlobal, SysUtils, Classes;
var
HTTP: TIdHTTP;
RequestBody: TStream;
ResponseBody:
string;
begin
HTTP := TIdHTTP.Create;
try
try
RequestBody := TStringStream.Create('
{"日本語":42}',
TEncoding.UTF8);
try
HTTP.Request.Accept := '
application/json';
HTTP.Request.ContentType := '
application/json';
ResponseBody := HTTP.Post('
https://httpbin.org/post',
RequestBody);
WriteLn(ResponseBody);
WriteLn(HTTP.ResponseText);
finally
RequestBody.Free;
end;
except
on E: EIdHTTPProtocolException
do
begin
WriteLn(E.
Message);
WriteLn(E.ErrorMessage);
end;
on E:
Exception do
begin
WriteLn(E.
Message);
end;
end;
finally
HTTP.Free;
end;
ReadLn;
ReportMemoryLeaksOnShutdown := True;
end.