1. 爬虫代理407错误设置
如果遇到爬虫代理 407 错误,可能需要对 JVM 进行设置:
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "false");
System.setProperty("jdk.http.auth.proxying.disabledSchemes", "false");
Java 8 Update 111 变更说明:
Now, proxies requiring Basic authentication when setting up a tunnel for HTTPS will no longer succeed by default. If required, this authentication scheme can be reactivated by removing Basic from the jdk.http.auth.tunneling.disabledSchemes networking property, or by setting a system property of the same name to "" ( empty ) on the command line.
2. 通过代理访问 HTTP2 网站
需要保证 JDK 的版本支持 HTTP2 网站的访问,Java 9 及以上才能完整支持。
Java 8 并不提供对 HTTP/2 的完整原生支持。Java 9 是第一个包含内置 HTTP/2 支持的版本,其位于 java.net.http 包中,也称为 Java 9 HTTP/2 客户端。
如果您需要在 Java 应用程序中使用 HTTP/2,并且仅限于 Java 8,您仍然可以使用提供 HTTP/2 支持的外部库,比如流行的 Jetty Web 服务器、Netty 或 OkHttp。这些库有自己的 HTTP/2 实现,并且可以在 Java 8 项目中使用,以与支持 HTTP/2 的服务器进行交互。
然而,如果可能的话,建议使用更高版本的 Java,例如 Java 9 或更高版本,因为它们包含原生的 HTTP/2 支持。