gpt4 book ai didi

http - Indy IdHTTP 未正确报告状态

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:07:34 26 4
gpt4 key购买 nike

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

在处理程序中设置断点时,它只会在我执行 Get("google.com") 时在 hsConnected 状态下中断。我知道我不应该获得全部范围,但我至少应该在 hsConnected 之前获得 hsResolvinghsConnecting 消息。

可用状态列表:

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

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

最佳答案

hsConnectedTIdTCPClientCustomOnStatus 事件报告,但您正在寻找的其他状态由 OnStatus 报告 TIdIOHandler 的事件。

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

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

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

New HTTPS functionality for TIdHTTP

TIdHTTP now has new functionality that allows it to auto-create an internal default SSLIOHandler object when requesting an HTTPS url if no IOHandler has been assigned yet.

关于http - Indy IdHTTP 未正确报告状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com