Question

Only a GET request to a HTTP url works. If i try to request a HTTPS url then it doesn't return anything. I pretty much tried everything. Appreciate any help.

Here's my code:

 SynHttp.Sock.CreateWithSSL(TSSLOpenSSL);
 SynHttp.Sock.SSLDoConnect;
 SynHttp.HTTPMethod('GET', 'https://www.google.com/');
 Resp.LoadFromStream(SynHttp.Document);
 HtmlResponse := Resp.Text;

SynHTTP is a THTTPSend object.

Was it helpful?

Solution

Make sure:

  1. your exe application can access ssleay32.dll and libeay32.dll - the easiest way is to copy them into the directory of your exe.
  2. you added ssl_openssl.pas and ssl_openssl_lib.pas to your project.

Then it should work instantly.

OTHER TIPS

Use HTTPSend and headers, works with SSL in HTTPMethod. If you use in URL 'https:' instead only 'http:', then your request is made by SSL/TLS connection:

aURL:='https://api.metadefender.com/v4/file/bzIwMDYxNi1TSW42NDBPVlprTWw3YjRBMQ';

with THTTPSend.create() do begin
  Headers.Add('apikey: 6b337c92c792174a54acd715ab1aae64');
  writeln(botostr(HTTPMethod('GET',aURl)));
  writeln('synapse get: '+StreamtoString3(document)) 
  writeln(itoa(ResultCode)+' '+ResultString);
  Clear;
  Free;
end;  
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top