我正在尝试连接到使用 SSL 的网站。此连接是通过代理 (squid) 进行的,该代理也需要代理身份验证。
我目前在我的应用程序中使用 HttpsUrlConnection 进行连接,如果可能的话,我更愿意继续使用它。
当您使用 connection.open(" https://domain.com ") 建立连接时会出现问题,HTTP CONNECT 在您有机会设置任何标头(包括“代理身份验证”)之前立即发送,在正常情况下http 连接在调用 getOutputStream 之前不会发送任何内容,因此只需设置此标头即可。
可以为此设置一个 defaultAuthenticator 以返回正确的名称和密码。但这有两个问题:
该应用程序是在 Web 服务器内运行的 Web 应用程序,具有未知的其他应用程序。如果我设置默认身份验证器,这会影响其他应用程序吗?(出于同样的原因,设置系统属性已退出)
我还需要能够在不同的连接中使用不同的代理。例如,我可能有一个连接到proxy1.domain.com 和另一个连接到proxy2.domain.com,每个都有不同的凭据。
实现这一目标的正确方法是什么?鉴于 HttpUrlConnection 的广泛使用,如果这不可能,我会感到非常惊讶。