4

只有对 HTTP url 的 GET 请求有效。如果我尝试请求 HTTPS url,那么它不会返回任何内容。我几乎尝试了一切。感谢任何帮助。

这是我的代码:

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

SynHTTP 是一个 THTTPSend 对象。

4

2 回答 2

6

确保:

  1. 您的 exe 应用程序可以访问ssleay32.dll-libeay32.dll最简单的方法是将它们复制到您的 exe 目录中。
  2. 您添加ssl_openssl.passsl_openssl_lib.pas您的项目中。

然后它应该立即工作。

于 2012-07-08T08:06:05.250 回答
0

使用 HTTPSend 和标头,在 HTTPMethod 中使用 SSL。如果您在 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;  
于 2020-08-28T19:35:33.317 回答