是否可以在不使用代理的情况下直接连接到Internet。
考虑我的组织有代理的情况,我使用Java代理类中给出的DIRECT选项。
SocketAddress addr = new
InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);
如果您按照文档说明 DIRECT代表直接连接或缺少代理。
这正是它的行为方式。当我使用此选项时,我不必提供任何代理详细信息,我可以从Internet访问内容。
我有三个问题
提前致谢。
答案 0 :(得分:2)
Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);
不是创建直接(无代理)代理指令的正确方法。你应该做
Proxy proxy = Proxy.NO_PROXY
Socket类和HttpURLConnection的内部实现检查proxy == Proxy.NO_PROXY
(注意:“==”,而不是“equals()”!)。
它不会检查proxy.getType() == Proxy.Type.DIRECT
。
答案 1 :(得分:0)
2)您可能已在任何系统属性中设置代理。如果您使用的是任何IDE,请检查IDE的代理设置。
答案 2 :(得分:0)
如果您的组织有代理,并非所有网络流量都通过代理。您仍然可以继续建立与Internet的直接连接。大多数情况下,组织将阻止直接连接并强制您使用代理。有时他们可能会允许您使用Restricted Direct连接,这允许某些URL并拒绝其他URL。