发布日期:2026-08-15

一、巨量 IP HTTP 代理基础连接格式
标准代理地址格式
| Plain Text http://代理账号:代理密码@隧道地址:端口 |
代理认证方式:Basic Auth 身份验证,Java 代码中需要配置代理鉴权。
二、三种主流 Java 接入方式
方式 1:OkHttp(爬虫、采集项目最推荐)
Maven 依赖
| xml com.squareup.okhttp3 okhttp3 4.12.0 |
完整示例代码
| java import okhttp3.Authenticator; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.net.InetSocketAddress; import java.net.Proxy; public class OkHttpProxyDemo { public static void main(String[] args) throws Exception { // ========== 巨量IP隧道配置,自行替换 ========== String proxyHost = "隧道地址"; int proxyPort = 端口号; String proxyUser = "代理账号"; String proxyPwd = "代理密码"; // 创建代理对象 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort)); // 代理身份认证 Authenticator proxyAuthenticator = (route, response) -> { String credential = okhttp3.Credentials.basic(proxyUser, proxyPwd); return response.request().newBuilder() .header("Proxy-Authorization", credential) .build(); }; OkHttpClient client = new OkHttpClient.Builder() .proxy(proxy) .proxyAuthenticator(proxyAuthenticator) .build(); Request request = new Request.Builder() .url("https://httpbin.org/ip") // 用于验证出口IP .build(); try (Response resp = client.newCall(request).execute()) { System.out.println(resp.body().string()); } } } |
✅适用场景:爬虫、高频采集、长连接任务,性能优秀。
方式 2:Java 原生 HttpURLConnection(无需引入第三方包)
| java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.HttpURLConnection; import java.net.PasswordAuthentication; import java.net.Proxy; import java.net.InetSocketAddress; import java.net.URL; import java.util.Base64; public class NativeProxyDemo { public static void main(String[] args) throws Exception { String proxyHost = "隧道地址"; int proxyPort = 端口号; String proxyUser = "代理账号"; String proxyPwd = "代理密码"; // 设置代理鉴权 Authenticator.setDefault(new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(proxyUser, proxyPwd.toCharArray()); } }); Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort)); URL url = new URL("https://httpbin.org/ip"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy); // Basic认证头 String auth = Base64.getEncoder().encodeToString((proxyUser + ":" + proxyPwd).getBytes()); conn.setRequestProperty("Proxy-Authorization", "Basic " + auth); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); conn.disconnect(); } } |
方式 3:Spring 项目 RestTemplate 接入 HTTP 代理
| xml org.springframework.boot spring-boot-starter-web |
配置类
|
java .context.annotation.Configuration; |
三、短效隧道 / 长效隧道代码注意事项
1. 短效隧道(每次请求更换 IP)
每次请求建议关闭长连接:
| java request.header("Connection", "close"); |
防止连接复用导致 IP 无法切换。
2. 长效会话隧道(锁定 IP 一段时间)
保留长连接,不需要添加 Connection:close,保证会话内 IP 稳定。
四、常见报错与解决方案
1、407 Proxy Authentication Required
原因:代理账号密码错误 / 服务器公网 IP 没有添加巨量 IP 后台白名单。
解决:
①核对账号密码,不要包含空格;
②登录巨量 IP 后台,把运行 Java 程序服务器公网 IP 加入白名单。
2、连接超时 ConnectException
①隧道地址、端口填写错误;
②服务器出口网络无法访问代理节点;
③晚高峰线路拥堵,适当加大超时时间。
3、IP 归属地和选择城市不一致
属于少量地域漂移;下沉城市漂移概率高于省会;定向业务优先选择省会节点。
4、大量 403 访问拦截
代码层面优化:
• 设置随机请求间隔;
• 轮换 User-Agent;
• 降低并发线程;
• 多条隧道业务隔离。
五、生产环境最佳实践(采集项目推荐)
1. 优先使用 OkHttp,灵活性最高;
2. 设置连接超时 10~15 秒,避免卡死;
3. 区分短效、长效隧道配置 Connection 请求头;
4. 大规模业务拆分多条隧道,不要共用一条隧道跑多个平台任务;
5. 正式上线前 48 小时持续测试,覆盖晚高峰 20:00–23:00;
6. 新用户先申请免费测试隧道调试代码。
六、测试验证方法
调用 https://httpbin.org/ip,打印返回的 IP 地址,确认出口 IP 为住宅 IP,代表代理对接成功。
FAQ常见问题
Q1:Java 代码可以同时接入多条巨量 IP 隧道吗?
A:可以,构建多个独立 OkHttpClient 实例,分别配置不同隧道。
Q2:HTTP 隧道代码能不能直接改成 SOCKS5?
A:需要修改 Proxy.Type.SOCKS,配置方式略有区别。
Q3:容器 Docker 内运行 Java 程序需要额外配置吗?
A:需要填写宿主机 / 容器公网 IP 添加至巨量 IP 白名单,不要使用内网 IP。
2026-08-15
2026-08-15
2026-08-15
2026-08-15
2026-08-15
2026-08-15

关注巨量HTTP公众号
在线客服
客户定制
QQ客服 (09:00 - 24:00)
咨询热线 (09:00 - 24:00)
15629532303
扫码联系微信客服
公众号
扫码关注微信公众号
返回顶部