0

私は TIdHTTPProxyServer を使用していますが、ターゲット HTTP サーバーへの接続に成功したときに接続を終了したいのですが、長時間 (ig 3 分) 応答がありません。現在、関連するプロパティやイベントは見つかりません。また、プロキシ サーバーが HTTP サーバーからの応答を受信する前に、クライアントが接続を終了した場合でも。OnException イベントは、プロキシ サーバーが応答を受信するまで発生しません。(つまり、プロキシ サーバーがまだ HTTP サーバーから応答を受信しない場合、クライアントが既に接続を終了したことさえわかりません...)

どんな助けでも大歓迎です。

ありがとう!

ウィリー

4

1 に答える 1

1

Indy はデフォルトで無限タイムアウトを使用します。求めていることを行うには、ターゲット サーバーへのアウトバウンド接続の ReadTimeout プロパティを設定する必要があります。プロパティを介してその接続にアクセスできますTIdHTTPProxyServerContext.OutboundClientOnHTTPBeforeCommandOutboundClient がターゲット サーバーに接続する直前にトリガーされるイベントを使用します。

#include "IdTCPClient.hpp"

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