私はTIdHTTP
自分のアプリケーションで多くのことを使用しており、私のユーザーは特定のタイムアウトで Socks4/5 機能を要求しました。私は自分のアプリケーションを使用して SSL Web サイトと通信していますが、ProxyParams
以前は通常の Web サイトでしか作業していませんでした。TIdHTTP
特定のタイムアウトを使用してコンポーネントに Socks4 および/または Socks5 のサポートを追加するにはどうすればよいですか?
編集:
私は Socks4/Socks5 プロキシを持っていないので、テスト用の新しいアプリケーションで独自のプロキシを作成しました。を追加TIdSocksServer
して割り当てましTIdServerIOHandlerSSLOpenSSL
た。接続を確認するために、にメッセージボックスを追加しましたOnConnect
。サーバーはポート 8080 でリッスンし、次のように設定されています。Active:=True;
TIdHTTP
コンポーネントを使用するコードは次のとおりです。
procedure NewQuery;
var
IDHTTP : TIdHTTP;
SSL : TIdSSLIOHandlerSocketOpenSSL;
Socks : TIdSocksInfo;
begin
Socks := TidSocksInfo.Create (NIL);
IDHTTP := TIdHTTP.Create(NIL);
SSL := TIdSSLIOHandlerSocketOpenSSL.Create(NIL);
IDHTTP.IOHandler := SSL;
SSL.TransparentProxy := Socks;
Socks.Host := 'localhost';
Socks.Port := 8080;
Socks.Authentication := saNoAuthentication;
Socks.Version := svSocks4; // or svSocks5
IDHTTP.ConnectTimeout := 5000; // 5 seconds
IDHTTP.Get ('www.google.com');
end;
これを正しい方法で使用したかどうかはわかりませんが、GET リクエストはソックス サーバーに接続しなくても機能するようです。私はそれを間違って使用していますか?