gpt4 book ai didi

c++ - 如何为 HTTP 代理服务器设置超时(不是连接超时)

转载 作者:行者123 更新时间:2023-11-28 08:01:48 25 4
gpt4 key购买 nike

我正在使用 TIdHTTPProxyServer 现在我想在成功连接到目标 HTTP 服务器但很长时间(例如 3 分钟)没有收到响应时终止连接目前我没有找到相关的属性(property)或事件。并且即使客户端在代理服务器收到来自 HTTP 服务器的响应之前终止连接。在代理服务器收到响应之前,不会触发 OnException 事件。 (也就是说,如果代理服务器仍然没有收到来自HTTP Server的响应,我什至不知道客户端已经终止了连接...)

我们将不胜感激。

谢谢!

威利

最佳答案

Indy 默认使用无限超时。要执行您要求的操作,您需要将出站连接的 ReadTimeout 属性设置为目标服务器。您可以通过 TIdHTTPProxyServerContext.OutboundClient 属性访问该连接。使用 OnHTTPBeforeCommand 事件,它在 OutboundClient 连接到目标服务器之前触发,例如:

#include "IdTCPClient.hpp"

void __fastcall TForm1::IdHTTPProxyServer1HTTPBeforeCommand(TIdHTTPProxyServerContext *AContext)
{
static_cast<TIdTCPClient*>(AContext->OutboundClient)->ReadTimeout = ...;
}

关于c++ - 如何为 HTTP 代理服务器设置超时(不是连接超时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255454/

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