[英]How can I use certificate authentication with HttpsURLConnection?
[英]How do I use proxy authentication with an SSL connection using HttpsUrlConnection?
我正在尝试连接到使用SSL的网站。 此连接通过代理(鱿鱼)进行,该代理也需要代理身份验证。
我目前正在使用HttpsUrlConnection在我的应用程序内进行连接,如果可能的话,我希望继续使用它。
当您使用connection.open(“ https://domain.com ”)建立连接时,会出现问题,通常情况下,在您有机会设置包括“代理身份验证”在内的任何标头之前,都会立即发送HTTP CONNECT http连接在getOutputStream调用之前不会发送任何内容,因此只需设置此标头即可。
可以为此设置一个defaultAuthenticator,以返回正确的名称和密码。 但是有两个问题:
该应用程序是在Web服务器中运行的Web应用程序,其他未知应用程序也是如此。 如果设置默认身份验证器,这会影响其他应用程序吗? (出于同样的原因,设置系统属性已退出)
我还需要能够在不同的连接中使用不同的代理。 例如,我可能有一个连接到proxy1.domain.com,另一个连接到proxy2.domain.com,每个都有不同的凭据。
实现此目标的正确方法是什么? 如果HttpUrlConnection不能广泛使用,我将感到非常惊讶。
如果我没有完全误解,则无法使用JVM URLConnection
和朋友来实现。 此外,鉴于其在严重错误和内存泄漏方面的良好记录,它已经在我们公司的黑名单中占据了相当长的一段时间。
对于您的问题1, 通常每个ClassLoader
都有一个自己的类副本和这些类的静态成员。 由于Authenticator
是JVM类,因此我假设它是由应用程序ClassLoader
的父ClassLoader
(之一) ClassLoader
的,这确保了JVM内只有Authenticator
类的单个副本。
您设置一个java.net.Authenticator
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.