delphi - Indy IdHttp Proxy,支持哪些协议?
问题描述
我正在使用 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 绕过审查和发布数据,当然我知道我必须在 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 网络将其连接到目标服务器。如果您的操作系统只安装了 1 个网络,这通常会自动为您处理。如果您的操作系统安装了多个网络,或者您只想明确说明它,那么您可以通过将其属性设置为所需网络的本地TIdHTTP
IP 地址来判断要使用哪个网络连接。BoundIP
推荐阅读
- javascript - Javascript中AudioBuffer与ArrayBuffer和NodeJs Buffer的区别
- r-markdown - 在 RMarkdown beamer 演示文稿中的文档类之前包含乳胶包选项
- rxjs - 如何执行依赖的顺序调用并返回包含所有响应的数组?
- json - 如何修复“HttpMessageNotReadableException:缺少所需的请求正文”?
- sql-server - 错误:TCP 提供程序:错误代码 0x2746。在通过终端在linux中设置Sql期间
- java - 哪个列表应该用于休眠?
- node.js - 如何使用 nginx 处理节点的 100 万个请求
- python - 如何计算熊猫系列中的连续重复次数
- java - 如何在连接时结束拨出电话?
- tensorflow - 如何解决“tensorflow”没有属性“init_scope”