
手把手教你在Swift里配个代理IP
搞过网络请求的都知道,有时候直接用自己的IP发请求容易吃闭门羹。比方说爬数据的时候,网站反爬机制一触发,分分钟就把你IP给封了。这时候要是会配个代理IP,那真是救命的绝招。
咱就以URLSession为例,说说怎么在Swift里整代理设置。重点看URLSessionConfiguration这个配置对象,它有个connectionProxyDictionary属性,往里面塞代理信息就完事了。
let config = URLSessionConfiguration.default
config.connectionProxyDictionary = [
kCFNetworkProxiesHTTPEnable: 1,
kCFNetworkProxiesHTTPPort: 8080,
kCFNetworkProxiesHTTPProxy: "1.2.3.4",
kCFProxyUsernameKey: "账号", // 需要认证的话填
kCFProxyPasswordKey: "密码" // 不需要就删这两行
]
let session = URLSession(configuration: config)
注意啊,这里用字典设置的时候别把key搞混了。要是用socks5代理,记得把HTTP开头的key换成Socks相关的。代码里那个1.2.3.4和8080得换成你实际拿到的代理IP和端口。
代理IP选哪家靠谱?
市面上代理服务商多如牛毛,但坑也不少。有些号称便宜的,用起来不是掉线就是速度慢成龟。这里推荐ipipgo家的服务,他们家的住宅IP质量确实稳。
| Tipo de envase | Escenarios aplicables | precios |
|---|---|---|
| Residencial dinámico (estándar) | Recogida rutinaria de datos | 7,67 ¤/GB/mes |
| Residencial dinámico (empresa) | Requisitos operativos de alta frecuencia | 9,47 RMB/GB/mes |
| Viviendas estáticas | Necesidades de PI fija a largo plazo | 35/IP/mes |
特别说下他们家的Línea TK,做海外业务的时候延迟能压到200ms以内。提取方式也简单,直接调API就能拿最新IP,还支持socks5协议。
Guía práctica para evitar el pozo
Algunos errores comunes de los novatos:
- IP过期不换:动态IP有效期短的只有几分钟,记得及时刷新
- acuerdo erróneo:http代理填到socks5配置里,肯定连不上
- 忘记认证:带账号密码的代理不在代码里配认证信息,等着看报错吧
测试代理是否生效的小窍门:先往httpbin.org发个请求,看看返回的origin字段是不是代理IP的地址。如果还是本机IP,说明配置没生效。
Preguntas frecuentes
Q:代理设置后请求超时怎么办?
A:先检查IP和端口对不对,再试试用curl命令直连代理服务器,排除网络问题
Q:需要频繁切换IP怎么操作?
A:建议用ipipgo的API动态获取IP,每次请求前更新connectionProxyDictionary
P: ¿Cómo elegir entre IP estática e IP dinámica?
A:需要长期维持会话选静态,短期高频请求用动态更划算
最后提醒下,选代理服务别光看价格。像ipipgo这种能提供Programas personalizados 1 a 1的,遇到特殊业务需求的时候真的能救命。他们家的客户端工具也挺傻瓜式的,嫌写代码麻烦的话直接客户端里一键切换更方便。

