2015-05-21 85 views
0

我使用java.net.HttpURLConnection調用GET方法。我正面臨着錯誤「拒絕連接」HTTP URL連接是否需要在客戶端打開PORT

我打電話http://192.168.1.5:8038/GetStudent

所以想了解我需要在客戶端OS打開端口? 我很困惑,因爲默認HTTP偵聽80,哪個是OPEN。

據我所知,在服務器端的8038應該是開放的

+1

您的Web服務器上默認端口8038上運行,例如大多數Web服務器都在端口8080或weblogic的運行在端口7001上運行,而有些可能更改Web服務器的默認值並在端口8038上進行配置。通常在開發過程中,服務器沒有在端口80上運行,並且在生產服務器上將其更改爲端口80,因此在您的情況下,您應該檢查是否可以連接到端口8038服務器(使用telnet等命令),如果可能的話,可能是因爲您的Web應用程序未部署在服務器上,您會收到此錯誤 – Lrrr

+1

確保服務器的防火牆允許端口8038上的傳入連接,並且服務器實際上處於啓動狀態並在該端口上偵聽。如果你的服務器是基於* nix的,你可以使用這個命令'netstat -tulpn |檢查在8038上監聽的進程grep:8038' –

+0

我已經從另一臺機器和瀏覽器進行測試我可以從http://192.168.1.5:8038/GetStudent得到結果,但是當我在我的機器上使用我的代碼運行相同的結果時,我沒有得到結果 – Arvind

回答

1

您需要確定哪個端口服務器運行在,因爲在你的網址,該部分:8083意味着你試圖連接到服務器的端口8083,不在80.如果你沒有指定端口,那麼缺省值是80.也許服務器沒有在這個端口上運行(8083),或者有防火牆阻塞了它的通信?通常不需要在客戶端設置輸出端口。當有未知的用戶代理屬性時,服務器可能會拒絕。嘗試在這個例子中設置用戶代理屬性,如:

 String url = "https://translate.google.pl/translate_a/single?client=t&sl=ro&tl=pl&hl=pl&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=4&tsel=3&kc=1&tk=521057|406131&q="; 
     url = url + URLEncoder.encode(text, "UTF-8"); 
     HttpsURLConnection con = (HttpsURLConnection) new URL(url) 
       .openConnection(); 
     System.setProperty("http.agent", ""); 
     con.setRequestProperty(
       "User-Agent", 
       "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); 
     // con.setha 
     con.setDoInput(true); 
     con.setDoOutput(true); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     int n; 
     while ((n = con.getInputStream().read()) != -1) { 
      baos.write(n); 
     } 
     ; 

     String translatedText = new String(baos.toByteArray(), "UTF-8"); 
+0

我已經從另一臺機器和瀏覽器進行了測試我能夠從http://192.168.1.5:8038/GetStudent得到結果,但是當我在我的機器上使用我的代碼運行相同的結果時,我沒有收到結果 – Arvind

+1

是您的機器在與服務器相同的子網中? –

+0

爲了幫助,你自己的IP是什麼? – Ben

相關問題