如何设置 TIdHTTPProxyServer 超时(不是连接超时)

How do I set timeout for TIdHTTPProxyServer (not connection timout)

本文关键字:超时 连接 何设置 TIdHTTPProxyServer 设置      更新时间:2023-10-16

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

任何帮助将不胜感激。

谢谢!

威利

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

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