我是 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 为其 ConnectTimeout
和 ReadTimeout
属性使用无限超时,因此出现该错误的唯一方法是操作系统本身在尝试时超时连接到服务器。确保您的机器有到达 esta.cbp.dhs.gov
的网络路由。您可以在 Web 浏览器中加载 URL 吗?
关于sockets - TIdHTTP 返回 "Socket Error # 10060' #$D#$A'连接超时。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029184/