2015-11-02 103 views
0

我在写一个使用HttpURLConnection来连接URL的java程序。但问题是url是我公司的内部网址,所以我必须连接我公司的wifi才能访问它。但也有在我公司的网络中的一些策略,不允许我使用的命令,如“平”或“NSLOOKUP”: enter image description here在公司的Intranet中使用HttpURLConnection

我:当我使用HttpURLConnection的发生 enter image description here

而且同样的问题不明白为什么我可以在我的浏览器中访问www.google.com,但无法用java或命令行连接它。我认为我的笔记本电脑没有问题,因为我在我家的wifi环境中尝试了相同的东西,并且一切正常。但在我家的wifi上,我无法访问该公司的内部网址。我知道我的描述是混乱的,这样的情况是:

在公司的wifi环境:

I can visit google in browser 
I can visit the company's url which I want to connect in java 
I cannot ping/nslookup google 
I cannot connect google or company's url in java(UnknownHostException) 

在家里的wifi环境:

I can visit google in browser 
I cannot visit the company's url which I want to connect in java 
I can ping/nslookup google 
I can connect google in java 
I cannot connect company's url in java 

所以有可能是我连接我公司的java在我公司的wifi环境中的URL?谢谢。

+1

您是否尝试使用“http://www.google.com”而不是“www.google.com” '? –

+1

您需要通过系统属性设置您的HTTP代理。请参阅[Java网络和代理](http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html)。 – EJP

+1

@JonnyHenly如果他没有*已经*首先使用'http:// www.google.com',他不会浏览所有的HTTP代码。 – EJP

回答

1

大多数组织使用代理服务器进行互联网流量。

您的浏览器必须使用代理,该代理应能够解析主机名称本身或通过使用其他DNS服务器。您应该检查您的浏览器设置并从那里获取代理设置并在代码中使用它。在代码中使用代理设置的方法之一是通过设置系统属性,如下所示:

System.setProperty("http.proxyHost", "host"); 
System.setProperty("http.proxyPort", "port_number"); 
System.setProperty("http.proxyUser", "user"); 
System.setProperty("http.proxyPassword", "password"); 
+0

不存在这些方法之一。 – EJP

+0

@EJP谢谢,不知道从哪里学到了这些:-p更新为使用系统属性。 –

+0

用户/密码属性也不存在,除了Apache HTTP客户端和其他第三方的东西。请参阅上面评论中引用的Networking和Proxies文档。 – EJP