TIdHTTP返回"套接字错误#10060'#$ D#$'连接超时。"

时间:2014-09-25 01:44:46

标签: sockets delphi ssl delphi-xe5 idhttp

我是Delphi的新手。为了与WebService通信,我添加了两个组件,TIdHTTP和TIdSSLIOHandlerSocketOpenSSL for SSL(https)。当从服务器获得响应时,它不起作用并返回"套接字错误#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;

提前致谢。

2 个答案:

答案 0 :(得分:0)

当我在最新版本的Indy中尝试时,您展示的代码可以正常工作。返回的String按预期包含网站的HTML。

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

答案 1 :(得分:0)

我有同样的信息。我有来自indy_OpenSSL096m.zip的Indy-10.1.5和Delphi-7,Win-7x64和SSL dll。我的问题是当我使用一些非常慢的网站时。即使在Google Ghrome中,这些网站有时也无法正常工作,它会说“此页面不可用” - 而是。其他网站工作正常。