Synapse Delphi HTTPS SSL GET-запрос

Работает только запрос GET к URL-адресу HTTP. Если я попытаюсь запросить URL-адрес HTTPS, он ничего не вернет. Я почти все пробовал. Цените любую помощь.

Вот мой код:

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

SynHTTP — это объект THTTPSend.


person user1224096    schedule 07.07.2012    source источник
comment
Нет вдохновителя Delphi? :(   -  person user1224096    schedule 08.07.2012
comment
Я не знаком с компонентами синапса, но попробуйте вызвать SynHttp.HTTPMethod после .CreateWithSSL, а затем .SSLDoConnect, если это не сработает, попробуйте SynHttp.Sock.Connect вместо .SSLDoConnect, надеюсь, это сработает.   -  person    schedule 08.07.2012


Ответы (2)


Убедись:

  1. ваше приложение exe может получить доступ к ssleay32.dll и libeay32.dll — самый простой способ — скопировать их в каталог вашего exe.
  2. вы добавили ssl_openssl.pas и ssl_openssl_lib.pas в свой проект.

Тогда это должно сработать мгновенно.

person oxo    schedule 08.07.2012

Используйте HTTPSend и заголовки, работает с SSL в HTTPMethod. Если вы используете в URL-адресе «https:» вместо «http:», ваш запрос выполняется через соединение SSL/TLS:

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;  
person Max Kleiner    schedule 28.08.2020