文档管理中心
您当前正在浏览新版开发者文档中心,目录分类和层级有所调整。点击左侧当前文档分类名称前的“☰”图标,可切换文档分类。 了解新版目录
问题处理与运维开发与测试问题系统开发网络网络(Network)使用connection.setAppHttpProxy设置代理后如何取消代理

使用connection.setAppHttpProxy设置代理后如何取消代理

问题现象

在使用connection.setAppHttpProxy设置代理后,如何才能取消代理?没有在官方文档中看到可以取消代理的接口。

背景知识

  • connection.setAppHttpProxy设置应用级http代理配置信息。
  • connection.getDefaultHttpProxy获取网络默认的代理配置信息。如果设置了全局代理,则会返回全局代理配置信息。如果进程使用setAppNet绑定到指定NetHandle对应的网络,则返回NetHandle对应网络的代理配置信息。在其它情况下,将返回默认网络的代理配置信息。

解决方案

常见FAQ

Q:如何获取设备当前的代理列表?

A:通过connection.getDefaultHttpProxy在回调中可以看到当前的代理信息。

Q:如何检测Wi-Fi代理并阻止?

A:connection.getDefaultHttpProxy可以获取网络默认的代理配置信息。当用户开启代理时,可以通过此API获取到的代理信息来判断是否开启代理,并弹出警告弹窗阻止继续使用。

Q:为何无论connection.setAppHttpProxy接口设置的域名是否正确,都会返回成功?

A:connection.setAppHttpProxy接口仅负责将代理配置写入系统,不会验证代理服务器的可用性。即使域名错误或服务器不可用,只要参数格式合法(如域名非空、端口为1-65535),都会返回成功。因此,需要应用自己校验域名的正确性。

Q:是否支持使用参数 { host: '', port: 0, exclusionList: ['*'] } 来达到禁用代理的效果?为何设置该参数后再去获取,得到的参数为 { host: '', port: 0, exclusionList: [] }?

A:set的参数用get接口拿到的会保持原样,get函数会拿到set函数设置的值。只有启用有效代理会对用户网络产生影响,设置空代理配置(如host为空、port为0)不会对用户网络产生任何影响。具体可参考connection.setAppHttpProxy与connection.getDefaultHttpProxy接口说明。