我在我的应用程序中经常使用TIdHTTP,我的用户请求一个带有特定超时的Socks4 4/5功能。我使用我的应用程序与SSL网站进行通信,而且我以前只使用常规的ProxyParams。如何通过特定的超时将Socks4和/或Socks5支持添加到Socks5组件中?
编辑:
因为我没有Socks4 4/Socks4 5代理,所以我创建了自己的应用程序来进行测试。我添加了TIdSocksServer并给它分配了一个TIdServerIOHandlerSSLOpenSSL。为了确保连接,我向OnConnect添加了一个Messagebox。服务器监听端口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请求在没有连接到socks服务器的情况下工作。我用错了吗?
发布于 2013-09-12 15:17:17
将TIdSocksInfo组件分配给IOHandler的TransparentProxy属性。
https://stackoverflow.com/questions/18767978
复制相似问题