【发布时间】:2017-08-16 13:10:22
【问题描述】:
以下代码的工作原理如图所示,但不适用于注释掉的 URL。
你能看到我的错误吗?
var
IdHTTP1: TIdHTTP;
sl: TStringList;
Src : string;
LHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
try
IdHTTP1 := TIdHTTP.Create(nil);
try
LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
IdHTTP1.IOHandler := LHandler;
Src := IdHTTP1.Get(TIdURI.URLEncode(
//'https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address=4600+Silver+Hill+Rd%2C+Suitland%2C+MD+20746&benchmark=9&format=json'
'https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1600+PENNSYLVANIA+AVE+NW&address2=&city=&state=Select&urbanCode=&postalCode=&zip=20500'
));
ShowMessage(Copy(src, 1, 100));
finally
LHandler.Free;
end;
finally
IdHTTP1.Free;
end;
except
on E: Exception do
ShowMessage('e');
end;
ShowMessage('done');
end;
注释掉的 URL 引发异常:
EIdOSSLUnderlyingCryptoError:连接 SSL 时出错。使用 SSL 连接时出错。错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手失败
【问题讨论】:
-
“未按预期工作” - 那么您的预期是什么以及它实际上做了什么?
-
-.- 有什么例外? (提示:将
showmessage('e')更改为raise)。 -
EIdOSSLUnderlyingCryptoError:连接 SSL 时出错。使用 SSL 连接时出错。错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手失败
-
这表明阅读错误信息很重要。不要只是忽略它们的内容。它们通常包含有价值的信息。不收集事实,你怎么能指望调试呢?
-
如果你是一名机械师,我把我的车带到你面前说“引擎有问题,请修理它”,你能猜到我的问题是引擎盖下的嘎嘎声吗?