Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indy IdHTTP未正确报告状态_Http_Indy_C++builder Xe7 - Fatal编程技术网

Indy IdHTTP未正确报告状态

Indy IdHTTP未正确报告状态,http,indy,c++builder-xe7,Http,Indy,C++builder Xe7,我已指定OnStatus处理程序使用AStatusText参数更新标签 在处理程序中设置断点时,当我执行Get(“google.com”)时,它仅在hsConnected状态下中断。我知道我不应该得到完整的范围,但我至少应该在hsConnected之前获得hsResolving和hsConnecting消息 可用状态列表: hsResolving, hsConnecting, hsConnected, hsDisconnecting, hsDisconnected, hsStatusText,

我已指定
OnStatus
处理程序使用
AStatusText
参数更新标签

在处理程序中设置断点时,当我执行
Get(“google.com”)
时,它仅在
hsConnected
状态下中断。我知道我不应该得到完整的范围,但我至少应该在
hsConnected
之前获得
hsResolving
hsConnecting
消息

可用状态列表:

hsResolving,
hsConnecting,
hsConnected,
hsDisconnecting,
hsDisconnected,
hsStatusText,
ftpTransfer,
ftpReady,
ftpAborted

知道我为什么没有得到其他状态吗?

hsConnected
TIdTCPClientCustom
OnStatus
事件报告,但您要查找的其他状态由
TIdIOHandler
OnStatus
事件报告

如果
TIdTCPClientCustom.Connect()
TIdCustomHTTP.CheckAndConnect()
必须创建一个新的隐式IOHandler对象,则会为其分配一个
OnStatus
处理程序,以便调用
TIdTCPClientCustom.OnStatus
事件。但是,如果在调用
Connect()
之前已经分配了IOHandler,则不会分配任何
OnStatus
处理程序。您必须将自己的
OnStatus
处理程序分配给您分配的任何IOHandler

有一个TODO项可以使
OnStatus
事件连接更加自动化

最有可能发生这种情况的情况是,您在请求HTTPS URL之前手动分配自己的SSLIOHandler。在这种情况下,您可以将
OnStatus
处理程序分配给SSLIOHandler。另一方面,如果您使用的是最新版本的Indy,它可以自动创建隐式SSLIOHandler(包括
OnStatus
hookup),这样您就不必再分配自己的(除非您需要自定义其设置):

TIdHTTP现在有了新的功能,允许它在请求HTTPS url时自动创建内部默认SSLIOHandler对象(如果尚未分配IOHandler)


谢谢你,雷米,我会尽快重新编译。我现在有LME288问题……是的,我将同一个事件处理程序附加到IOHandler的OnStatus,现在我得到了所有预期的调用。非常感谢。