Proxy 如何通过代理连接到Internet?

Proxy 如何通过代理连接到Internet?,proxy,Proxy,我写了下面的代码来访问网页并在Ubuntu中运行 我该如何解决这个问题?我已经尝试了来自互联网的建议修复,但仍然无法找到解决方案。a407响应表示“需要代理身份验证”,如前所述 现在,您似乎正在系统属性中设置代理用户和密码,但显然不起作用。我可以想出几个解释: 设置属性可能太晚了。这些属性在初始化时由默认的ProxySelector和Authenticator读取。如果你设定得太晚,他们就不会受到尊重。尝试使用-D..选项设置属性 您可能使用了错误的代理用户名和密码 代理可能期望代理身份验证详

我写了下面的代码来访问网页并在Ubuntu中运行


我该如何解决这个问题?我已经尝试了来自互联网的建议修复,但仍然无法找到解决方案。

a
407
响应表示“需要代理身份验证”,如前所述

现在,您似乎正在系统属性中设置代理用户和密码,但显然不起作用。我可以想出几个解释:

  • 设置属性可能太晚了。这些属性在初始化时由默认的
    ProxySelector
    Authenticator
    读取。如果你设定得太晚,他们就不会受到尊重。尝试使用
    -D..
    选项设置属性

  • 您可能使用了错误的代理用户名和密码

  • 代理可能期望代理身份验证详细信息的格式与提供的格式不同。查看失败请求响应中的标题。应该有一个包含“质询”的“代理身份验证”标头


如果这种方法不起作用,另一种选择是通过实现和注册自己的
ProxySelector
Authenticator
类,以编程方式实现代理选择和身份验证


跟进

我包含了ProxyAuthenticator类,现在抛出“java.net.ProtocolException:服务器重定向次数过多(20)”

不知何故,您的应用程序进入了重定向循环


我仍然不确信您是否足够早地设置了代理属性。

将此更改为,它应该work@user2699073-就像我在回答中告诉你的。使用-D。。。命令行选项。(请阅读
java
手册条目。其中有说明。)@user2699073-尝试使用Wireshark(或等效工具)查看HTTP请求和回复中的内容。这应该告诉你请求是否到达了正确的位置,请求和回复实际上包含了什么,以及(对于回复)你也被重定向了什么。