2011-04-21 72 views
1

主機名時,在我的Android應用程序,我必須從一個URL(http://api.offersdb.com/distribution/beta/offers.json?api_key=demo&radius=10&postal_code=30305)獲得XML數據,我使用下面的代碼獲取的java.net.UnknownHostException,使用android系統中

try { 
     URL url = new URL(urlStr);         
     URLConnection urlConn = url.openConnection(); 
     if (!(urlConn instanceof HttpURLConnection)) { 
      throw new IOException("URL is not an Http URL"); 
     } 
     HttpURLConnection httpConn = (HttpURLConnection) urlConn; 
     httpConn.setAllowUserInteraction(false); 
     httpConn.setInstanceFollowRedirects(true); 
     httpConn.setRequestMethod("GET"); 
     httpConn.connect(); 
     resCode = httpConn.getResponseCode(); 
     if (resCode == HttpURLConnection.HTTP_OK) { 
      inputStream = httpConn.getInputStream(); 
     } 
    }catch (Exception e) { 
     e.printStackTrace(); 

    } 

但它返回以下異常

java.net.UnknownHostException: Host is unresolved: api.offersdb.com:80 

當我在URL中的ip地址(XX.XX.XXX.XX)更改主機名(api.offersdb.com),我能得到響應。我不知道爲什麼我得到這個問題,請有人幫助我。

由於事先

Rajapandian

回答

0

這意味着,名稱解析某種程度上打破了你的設備/模擬器上。您是否可以使用Android設備的內置瀏覽器中的網址?

+0

感謝您的答覆。我嘗試在我的設備瀏覽器中,沒有數據傳出。請你能幫我解決這個問題嗎? – Rajapandian 2011-04-21 07:27:10

+0

您可以在android.stackexchange.com中尋求幫助,因爲這是一般的設備設置。基本上,無線局域網或移動網絡提供商不會向您發送正確的DNS服務器ips。 – 2011-04-21 07:36:29

1

您是否嘗試在清單文件中設置以下權限?

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

/亞歷克斯