HttpURLConnection 的 HTTP 代理配置
HttpURLConnection 无法使用代理设置可能会让在防火墙后面工作的开发人员感到困惑。尽管 JVM 中存在代理信息,但在不使用代理的情况下仍然可以建立连接。
Java 1.5 及更高版本:
引入 Java 1.5 带来了重大变化代理配置。开发人员现在可以使用 openConnection(proxy) 方法显式指定代理实例:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080)); conn = new URL(urlString).openConnection(proxy);
身份验证处理:
如果您的代理需要身份验证,您将遇到407 响应代码。要解决此问题,请实现自定义 Authenticator 子类并将其设置为默认身份验证器:
Authenticator authenticator = new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { // Provide appropriate credentials for proxy authentication return new PasswordAuthentication("user", "password".toCharArray()); } }; Authenticator.setDefault(authenticator);
通过实现此解决方案,您可以指示 HttpURLConnection 使用指定的代理,确保通过防火墙成功连接。
以上是如何配置 HttpURLConnection 的 HTTP 代理设置?的详细内容。更多信息请关注PHP中文网其他相关文章!