2012-11-29 66 views
0

我試圖連接到服務器,而不是接收一些數據以Json格式。這是我的Java代碼:安卓:IOException與HttpGet請求

HttpClient client = new DefaultHttpClient(); 
HttpGet request = new HttpGet("https://my.server.com/validate/" + data); 
request.setHeader("Accept", "application/json"); 
request.setHeader("X-AuthToken","my authorisation code"); 
HttpResponse response = client.execute(request); 

我也有

<permission android:name="android.permission.INTERNET"></permission> 

如清單(不適用)的孩子在我的manifest.xml

當我嘗試打開瀏覽器的URL ,我得到正確的頁面,但我沒有得到任何數據,因爲它沒有認證。我也有很好的聯繫。

我一直在努力,現在解決這一問題了幾個小時,但我還是在符合client.execute得到IOException異常(請求)

java.net.UnknownHostException: my.server.com 

任何想法? :) 謝謝!

+0

嘗試擊球像'HTTP已知網站:// www.google.com'看看ÿ你會得到相同的結果,如果是這樣,你知道問題是因爲某些原因連接到互聯網。如果沒有,那麼你知道問題是你的具體服務器 – FoamyGuy

+0

你在Android 3.0或更高版本上運行應用程序? – Bigflow

+0

我嘗試谷歌,結果相同。我在Android 2.3.3運行 –

回答

5

好像你缺少了uses-

<uses-permission android:name="android.permission.INTERNET" />

<permission>用於聲明新權限。 Docs

+0

同一手機IM哇,這是非常愚蠢的我。 ..我通常寫清單文件manualy,這次我用它的Eclipse GUI ...無論如何,這解決了問題,謝謝! –

+0

@Tomáš'GunsBlazing'Frček在權限選項卡上的eclipse清單GUI內部。點擊'添加...'後,您需要選擇列表中最下面的'使用權限' – FoamyGuy

+0

是的,這是不必要的混淆:/ – dmon

0

對不起,如果我錯過了一些東西,但是my.server.com真的是一個有效的主機?你忘了插入實際的主機?

+0

不,我在我的代碼中有真正的主機,我只是把「my.server.com」放在這裏,所以它更清晰,因爲真實網址很長 –

+0

因此,您在示例Java代碼和異常消息? – chinabuffet

+0

此外,當您通過瀏覽器中的URL訪問該頁面時,您是通過移動設備還是單獨的計算機執行該操作?可能要確保移動設備處於相同的網絡連接。 – chinabuffet

0

而且這裏的答案,這裏有幾個aditional的建議

  1. 嘗試將在一個瀏覽器URL
  2. 檢查以確保你有你的設備上的網絡連接使用瀏覽器
  3. 嘗試清潔項目並再次嘗試(這方面做的伎倆對我好幾次)(項目 - >清潔)