Indy IdHttp Proxy,支持哪些协议?

Indy IdHttp Proxy, which protocols Support?

我正在使用 indy idhttp 来处理电报 api,我的代码是这样的:

  LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  idHttp.ReadTimeout := 30000;
  idHttp.IOHandler:=LHandler;
  LHandler.SSLOptions.Method := sslvTLSv1;
  LHandler.SSLOptions.Mode := sslmUnassigned;
  idHttp.HandleRedirects := true;
  //Proxy Code...
  idHttp.Post( API + msg, Params, Stream);

我的代码工作正常,但问题是由于我所在国家/地区的审查和过滤,我必须使用 AnyConnect、L2TP 等 VPN 服务... 现在我的问题是如何使用 Indy ProxyParams 绕过审查和 post 数据,当然我知道我必须在 idhttp.post 之前添加以下代码,但我不知道它支持哪些协议或者我应该使用哪些 VPN 服务? 提前致谢。

  idHttp.ProxyParams.ProxyServer:='xxxxxx';
  idHttp.ProxyParams.ProxyUsername:='user';
  idHttp.ProxyParams.ProxyPassword:='pass';
  idHttp.ProxyParams.ProxyPort:=xxx;

TIdHTTP.ProxyParams 属性 仅支持使用 CONNECT 动词隧道 TCP 连接的基于 HTTP 的代理。

对于其他类型的代理,您必须使用 TIdIOHandlerSocket.TransparentProxy 属性 代替。例如,要使用 SOCKS 代理,请将 TIdSocksInfo 组件指定为 TransparentProxy.

VPN 不同于代理。 VPN 在网络层处理,而不是在应用层处理。您必须先从应用程序外部连接到 VPN,然后才能正常使用您的应用程序,通过 VPN 网络将其连接到目标服务器。如果您的 OS 只安装了 1 个网络,这通常会自动为您处理。如果您的 OS 安装了多个网络,或者如果您只是想明确说明,那么您可以通过设置其 BoundIP 属性 来告诉 TIdHTTP 使用哪个网络连接到所需网络的 local IP 地址。