有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无代理直接连接到Internet

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

考虑一个组织有代理的例子,我使用java代理类中给出的直接选项。

SocketAddress addr = new
InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.DIRECT, addr);

如果你按照它所说的文档去做 DIRECT,表示直接连接或没有代理

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

我有三个问题

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

提前谢谢


共 (3) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

  3. # 3 楼答案

    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