Java 不使用代理直接连接到Internet

Java 不使用代理直接连接到Internet,java,networking,proxy,Java,Networking,Proxy,不使用代理就可以直接连接到Internet吗 假设我的组织有一个代理,我使用Java Proxy类中给出的DIRECT选项 SocketAddress addr = new InetSocketAddress("webcache.mydomain.com", 8080); Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr); 如果你按照它所说的文档去做 DIRECT,表示直接连接或没有代理。 这正是它的行为方式。当我使用此选项时,我不必提供任何代理

不使用代理就可以直接连接到Internet吗

假设我的组织有一个代理,我使用Java Proxy类中给出的DIRECT选项

SocketAddress addr = new
InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);
如果你按照它所说的文档去做 DIRECT,表示直接连接或没有代理。

这正是它的行为方式。当我使用此选项时,我不必提供任何代理详细信息,我可以从Internet访问内容

我有三个问题

  • 根据我的理解,如果一个组织有代理,所有网络 流量应通过代理路由。不应该有人能做到 直接访问网络
  • 我还注意到,如果我从IE中删除代理详细信息,我不能 访问Web:-(Java怎么还能做到这一点
  • 如果在任何组织中,您都可以使用代理和 直接来说,防火墙是如何阻止某些站点的 防火墙还能用吗
  • 提前感谢。

    2)您可能已经在任何系统属性中设置了代理。如果您正在使用任何IDE,请检查IDE的代理设置

    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

    如果您的组织有代理,则并非所有网络流量都通过代理。您仍然可以继续并建立到Internet的直接连接。大多数情况下,组织会阻止直接连接,并迫使您使用代理。有时,它们可能允许您使用受限的直接连接,允许某些URL,而拒绝其他URL。

    问题1和3更适合Serverfault。总之,这个问题的某些部分可能适合Server fault,但我也有兴趣了解Java API是如何工作的。服务器出现故障时,该部分将永远不会得到响应。我请你不要提这个问题。谢谢。这是社区的决定。但三分之二是大多数问题;)感谢您的更正,但是DIRECT类型如何忽略组织代理并与外部世界建立直接联系呢。为什么浏览器无法执行此操作。新代理(Proxy.Type.DIRECT)不是直接代理(无代理)。这可能是Java开发人员的错误或疏忽,但事实就是如此。使用Proxy.NO_Proxy试试你的代码,看看会发生什么。