You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iOS中使用Network库而非URLSession配置代理设置

如何为Network库建立的连接设置代理?

使用URLSession时,可通过更新配置的connectionProxyDictionary字段设置代理,但使用Network库的NWConnection时,需要通过配置NWParameters的代理选项来实现。以下是具体步骤和代码示例:

1. 创建代理配置

首先定义代理的地址、端口,并创建对应的NWProxyConfiguration实例,分别配置HTTP和HTTPS代理(按需选择):

// 替换为实际的代理IP和端口
let proxyHost = NWEndpoint.Host("192.168.1.100")
let proxyPort = NWEndpoint.Port(rawValue: 8080)!

// 配置HTTP代理
let httpProxyConfig = NWProxyConfiguration(host: proxyHost, port: proxyPort)
httpProxyConfig.enable = true
httpProxyConfig.protocol = .http

// 配置HTTPS代理
let httpsProxyConfig = NWProxyConfiguration(host: proxyHost, port: proxyPort)
httpsProxyConfig.enable = true
httpsProxyConfig.protocol = .https

如果代理需要用户名密码认证,可添加认证配置:

httpProxyConfig.authenticationMethod = .password(username: "proxy_user", password: "proxy_pass")
httpsProxyConfig.authenticationMethod = .password(username: "proxy_user", password: "proxy_pass")

2. 将代理配置加入NWParameters

创建NWParameters实例,并把代理配置添加到其proxyConfigurations数组中:

let tcpParameters = NWParameters.tcp
tcpParameters.proxyConfigurations = [httpProxyConfig, httpsProxyConfig]

// 如果是TLS加密连接,使用NWParameters.tls并按需配置证书信息
// let tlsParameters = NWParameters.tls
// tlsParameters.proxyConfigurations = [httpProxyConfig, httpsProxyConfig]

3. 使用配置好的参数创建NWConnection

最后用包含代理配置的NWParameters创建连接:

// 替换为实际的目标主机和端口
let targetHost = NWEndpoint.Host("example.com")
let targetPort = NWEndpoint.Port(rawValue: 443)!

let connection = NWConnection(host: targetHost, port: targetPort, using: tcpParameters)

补充说明

  • 若需使用SOCKS代理,将proxyConfig.protocol设置为.socks即可
  • 代理配置会自动作用于后续建立的连接,无需额外手动转发请求

内容的提问来源于stack exchange,提问作者Guig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:20:47