我是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;
提前致谢。
答案 0 :(得分:0)
当我在最新版本的Indy中尝试时,您展示的代码可以正常工作。返回的String
按预期包含网站的HTML。
ConnectTimeout
和ReadTimeout
属性使用无限超时,因此获得该错误的唯一方法是在尝试连接服务器时操作系统本身是超时的。确保您的计算机具有到达esta.cbp.dhs.gov
的网络路由。您可以在网络浏览器中加载URL吗?
答案 1 :(得分:0)
我有同样的信息。我有来自indy_OpenSSL096m.zip的Indy-10.1.5和Delphi-7,Win-7x64和SSL dll。我的问题是当我使用一些非常慢的网站时。即使在Google Ghrome中,这些网站有时也无法正常工作,它会说“此页面不可用” - 而是。其他网站工作正常。