我编写了下面的代码来访问网页并在 Ubuntu 中运行。
我该如何解决?我已经尝试了来自互联网各地的建议修复,但仍然无法找到解决方案。
响应意味着“需要407
代理身份验证”,如此处所述。
现在您似乎在系统属性中设置了代理用户和密码,但它显然不起作用。我能想到几个解释:
您可能设置属性为时已晚。默认情况下会读取这些属性,ProxySelector
并且Authenticator
在初始化时会读取这些属性。如果你把它们设置得太晚,那么它们将不会被尊重。尝试使用-D...
选项设置属性。
您可能使用了错误的代理用户名和密码。
代理可能期望代理身份验证详细信息的形式与提供的形式不同。查看失败请求的响应中的标头。应该有一个包含“挑战”的“Proxy-Authenticate”标头。
如果这种方法不起作用,另一种选择是通过实现和注册您自己的类ProxySelector
和Authenticator
类以编程方式实现代理选择和身份验证。
跟进
我包含了 ProxyAuthenticator 类,现在,“java.net.ProtocolException: Server redirected too many times (20)”被抛出。
不知何故,您的应用程序已进入重定向循环。
我仍然不相信您足够早地设置代理属性。