sockets - TIdHTTP 返回 "Socket Error # 10060' #$D#$A'连接超时。”

标签 sockets delphi ssl delphi-xe5 idhttp

我是 Delphi 的新手。为了与 WebService 通信,我添加了两个组件,TIdHTTP 和 TIdSSLIOHandlerSocketOpenSSL for SSL(https)。从服务器获得响应时,它不起作用并返回“Socket Error # 10060'#$D#$A'连接超时。”我应该怎么办?下面是我的代码。

procedure TForm1.btnRequestClick(Sender: TObject);
var
  s: string;
  lHTTP: TIdHTTP;
  lIOHandler: TIdSSLIOHandlerSocketOpenSSL;

begin
  lHTTP := TIdHTTP.Create(nil);
  lIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    lHTTP.IOHandler := lIOHandler;
    lHTTP.HandleRedirects := True;
    s := lHTTP.Get('https://esta.cbp.dhs.gov/esta/');
    Memo.Text := s;
  finally
    lHTTP.Free;
    lIOHandler.Free;
  end;
end;

提前致谢。

最佳答案

当我在最新版本的 Indy 中尝试时,您显示的代码按原样运行良好。正如预期的那样,返回的 String 包含网站的 HTML。

默认情况下,Indy 为其 ConnectTimeoutReadTimeout 属性使用无限超时,因此出现该错误的唯一方法是操作系统本身在尝试时超时连接到服务器。确保您的机器有到达 esta.cbp.dhs.gov 的网络路由。您可以在 Web 浏览器中加载 URL 吗?

关于sockets - TIdHTTP 返回 "Socket Error # 10060' #$D#$A'连接超时。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029184/

相关文章:

java - 如何让服务器套接字广播它的存在,并让客户端套接字检测它并连接

delphi - Borland套接字服务器,那是什么?

javascript - Ratchet Websocket Apache2 SSL 无法连接到 PHP websocket

email - 切换到office365后outlook发新邮件不起作用

apache - 无法在本地主机之外访问 WAMP 站点的 https 版本

java - 服务器未从 java tcp/ip 客户端接收数据

delphi - UFT 无法识别 Delphi 对象?

delphi - 查找字符串是否在列表中的最佳方法(没有泛型)

apache - HTTP 与 HTTPS 的不同站点

ssl - 骡子 ESB 3.4.x : Multiple https clients with client certificate doesn't work togheter