Ako koristiš dot net dll, trebat će ti dot net verzija 4.5 (windows 7 ili noviji)
Ja imam delphi 7 i indy ne radi sa tls 1.2, pa koristnim synacode
http://www.ararat.cz/synapse/doku.php/download
i openSSL dll-ove verzija 1.0.1e
https://indy.fulgan.com/SSL/
Sa novim fininim certifikatima ne radi verifikacija servera, ni sa OpenSSL-om ni na Androidu (Bouncy Castle)
tako da je jednia opcija ne verificirat server.
(u THTTPSend pod Sock.SSL.THTTPSend setiraš na false)
ispoc je cila fukcije (ako je CertKeyName= '' nema verifikacije)
Ja imam delphi 7 i indy ne radi sa tls 1.2, pa koristnim synacode
http://www.ararat.cz/synapse/doku.php/download
i openSSL dll-ove verzija 1.0.1e
https://indy.fulgan.com/SSL/
Sa novim fininim certifikatima ne radi verifikacija servera, ni sa OpenSSL-om ni na Androidu (Bouncy Castle)
tako da je jednia opcija ne verificirat server.
(u THTTPSend pod Sock.SSL.THTTPSend setiraš na false)
ispoc je cila fukcije (ako je CertKeyName= '' nema verifikacije)
function HttpSynapsePostURL(const URL, URLData: string; const Data: TStream;CertKeyName:string): Boolean;
var HTTP: THTTPSend;
begin
synaSSLInit; //inicijalizira varijable i funkcije za post (tu je za svki slučaj, ako potpis već nije inicijalizira libove) !!!
HTTP := THTTPSend.Create;
try
WriteStrToStream(HTTP.Document, URLData);
HTTP.MimeType := 'text/xml';
if CertKeyName <> '' then begin
HTTP.Sock.SSL.VerifyCert := True;
HTTP.Sock.SSL.CertCAFile := CertKeyName;
end else begin
HTTP.Sock.SSL.VerifyCert := False;
HTTP.Sock.SSL.CertCAFile := '';
if c_Fisk_Slo then begin
HTTP.Sock.SSL.PFXfile := c_Fisk_KeyName;
HTTP.Sock.SSL.KeyPassword := c_Fisk_Zaporka;
HTTP.Headers.Add('SOAPAction: /echo');
end;
end;
Result := HTTP.HTTPMethod('POST', URL);
if HTTP.Sock.LastError<>0 then raise Exception.Create(HTTP.Sock.LastErrorDesc);
if HTTP.Sock.SSL.LastError<>0 then raise Exception.Create(HTTP.Sock.SSL.LastErrorDesc);
if Result then
Data.CopyFrom(HTTP.Document, 0);
finally
HTTP.Free;
end;
end;