最近遇到一个问题,用 swift 的 URLSession 库请求远程服务时,经常遇到数据传输慢的情况,在纯 ipv4 环境下就没有交互慢的问题,后来排查是因为 ipv6 导致的。
让用户在纯 ipv4 网络下使用 app 根本不现实,让运维关闭服务器的 ipv6 解析也不现实,只能寄希望于代码端了。
请问各位大佬,怎么在代码层面限制只使用 ipv4 进行交互?或者优先使用 ipv4 也行。
有没有第三方库推荐的?
1
xinJang 2023-02-06 14:26:15 +08:00
修改 hosts
|
2
NouveauNom 2023-02-06 14:59:14 +08:00
自行测试
let config = URLSessionConfiguration.default config.networkServiceType = .default //config.allowsCellularAccess = false config.connectionProxyDictionary = [:] config.ipv6Enabled = false let session = URLSession(configuration: config) let url = URL(string: "https://example.com/api")! var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = "request_data".data(using: .utf8) let task = session.dataTask(with: request) { (data, response, error) in // Handle response } task.resume() |
3
NouveauNom 2023-02-06 15:02:14 +08:00
忽略上面的回答。
|