2015-11-02 37 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