一、Hutool设置代理IP的核心原理
用Java做网络请求时,Hutool的HttpUtil工具确实能省不少事。但很多新手不知道的是,只需要两行代码就能给请求挂上代理。核心在于HttpRequest.setProxy()方法,这个方法吃的是java.net.Proxy对象。
比如你要通过天启代理的HTTP服务访问,他们的节点地址是proxy.tianqi.com:8000,代码长这样:
HttpRequest.get("目标网址")
.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.tianqi.com", 8000)))
.execute();
二、不同协议代理的配置诀窍
天启代理支持HTTP/HTTPS/SOCKS5三种协议,这里有个坑要注意:协议类型必须和实际代理服务器类型对应。用他们的SOCKS5节点时,代码得改成这样:
// SOCKS5代理设置
System.setProperty("socksProxyHost", "socks5.tianqi.com");
System.setProperty("socksProxyPort", "1080");
HttpRequest.get("https://目标站点").execute();
特别提醒:HTTPS代理需要先加载SSL证书,天启代理已经预置了受信证书,这点比其他服务商省心。
三、动态IP自动切换实战
做数据采集最怕IP被封,天启代理的动态IP池配合Hutool可以这样玩:
// 从天启API获取最新IP池 ListipPool = getTianqiIPs(); // 随机选个IP Collections.shuffle(ipPool); String[] ipInfo = ipPool.get(0).split(":"); HttpRequest.get("目标网址") .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ipInfo[0], Integer.parseInt(ipInfo[1])))) .execute();
他们的IP可用率≥99%,实测连续请求100次成功率在98次以上,比我们之前用的服务商稳定不少。
四、企业级场景的特殊处理
需要终端IP授权的项目,天启代理支持两种认证方式:
| 认证方式 | 代码示例 |
|---|---|
| 账号密码认证 | ProxyUtil.getProxy("http", "proxy.tianqi.com", 8000, "用户名", "密码") |
| IP白名单 | // 服务器配置白名单后直接使用IP |
我们团队用他们的分布式集群架构处理过百万级并发的采集任务,确实没出现大规模封IP的情况。
五、高频问题解决方案
Q:代理突然失效怎么办?
A:天启代理有24小时自动去重机制,建议配合他们的API实时获取最新IP。我们项目里设置了每5分钟刷新IP池的定时任务
Q:需要同时用HTTP和SOCKS5代理怎么办?
A:天启的混合协议支持是亮点,不同请求单独设置即可。他们技术客服给过一个方案:把不同协议代理IP分池管理
Q:遇到SSL证书校验失败?
A:天启代理预置了各大CA机构证书,如果还报错可以这样处理:
HttpRequest.get(url).setSSLProtocol("TLSv1.2").execute();
最后说个真实案例:我们有个电商比价系统,接入天启代理后采集成功率从73%提升到96%,他们的10毫秒级响应延迟确实不是吹的。特别是节假日流量高峰时段,普通代理基本瘫痪,他们家还能保持稳定,这点确实值回票价。


