使用网络库以编程方式在 iOS 中配置代理设置

Gui*_*uig 5 proxy networking ios swift

如何为使用Network(而不是使用URLSession)建立的连接设置代理设置?

正如此答案中所述,可以URLSession通过更新配置来做到这一点:

configuration.connectionProxyDictionary = [
    kCFNetworkProxiesHTTPEnable as String: 1,
    kCFNetworkProxiesHTTPProxy as String: ip,
    kCFNetworkProxiesHTTPPort as String: port,
    "HTTPSEnable": 1,
    "HTTPSProxy": ip,
    "HTTPSPort": port,
]
Run Code Online (Sandbox Code Playgroud)

我想使用该Network库做类似的事情。

我目前正在创建连接:

NWConnection(host: host, port: port, using: .init())
Run Code Online (Sandbox Code Playgroud)

但我不知道如何配置它以使用代理。

Pau*_*w11 3

网络框架中没有内置代理支持。它提供对原始 TCP 流和 UDP 数据包的访问。

如果您使用网络框架来处理 HTTP 协议,那么您将需要编写自己的代理支持(为什么要这样做?;只需使用URLSession)。

如果您想通过网络代理传输任意 TCP 流,CONNECT那么您需要自己实现。

如果您使用其他 TCP 或 UDP 协议,那么您可以使用 SOCKS 代理,但您再次需要实现这一点。