0

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

任何帮助将不胜感激。

谢谢!

威利

4

1 回答 1

1

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

#include "IdTCPClient.hpp"

void __fastcall TForm1::IdHTTPProxyServer1HTTPBeforeCommand(TIdHTTPProxyServerContext *AContext)
{
    static_cast<TIdTCPClient*>(AContext->OutboundClient)->ReadTimeout = ...;
}
于 2012-06-29T16:23:07.003 回答