2011-04-21 79 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" /> 

/亚历克斯