用于android的DOMParser

用于android的DOMParser,android,xml-parsing,inputstream,android-parser,Android,Xml Parsing,Inputstream,Android Parser,我正在学习如何使用android的DOm解析器,我使用了示例androidHive.com的服务 Im使用URLCOnnection连接到一个服务器,该服务器有用户名和密码要连接,但返回nullPointerException 受保护的静态InputStream getInputStreamURL url{ 试试{ URLConnection UrlConn = url.openConnection(); UrlConn.setDoInput (true); UrlConn.set

我正在学习如何使用android的DOm解析器,我使用了示例androidHive.com的服务

Im使用URLCOnnection连接到一个服务器,该服务器有用户名和密码要连接,但返回nullPointerException

受保护的静态InputStream getInputStreamURL url{ 试试{

 URLConnection UrlConn = url.openConnection();
 UrlConn.setDoInput (true);
    UrlConn.setRequestProperty ("trust",
            URLEncoder.encode(User,Pass);
    UrlConn .connect ();

    return UrlConn.getInputStream();



} catch (IOException e) {
    return null;
} catch (Exception e) {
    return null;
}
这是我的密码:

public static void domparser() throws Exception {
            //Get the DOM Builder Factory
         pizza=new ArrayList<HashMap<String,String>>(); 

         String urlN="http://api.androidhive.info/pizza/?format=xml";
         URL url=new URL(urlN);
         DocumentBuilderFactory factory = 
                DocumentBuilderFactory.newInstance();

            //Get the DOM Builder
            DocumentBuilder builder = factory.newDocumentBuilder();

            Document document = 
                      builder.parse(getInputStream(url));
            Element root = document.getDocumentElement();
            NodeList nodeList = root.getElementsByTagName("menu");

            for (int i = 0; i < nodeList.getLength(); i++) {

                Node node=nodeList.item(i);
               NodeList list=node.getChildNodes();



                for(int x=0;list.getLength()>x;x++){
                    //map=new HashMap<String,String>();
                    HashMap<String,String> map=new HashMap<String,String>();
                    Node element=list.item(x);
                    String name=element.getNodeName();
                    if (name.equalsIgnoreCase("id")){
                        map.put("Id",element.getFirstChild().getNodeValue().toString());
                    } else if (name.equalsIgnoreCase("name")){
                        map.put("name",element.getFirstChild().getNodeValue().toString());
                    }
                    pizza.add(map);
                    }

            }


     }

是否可能是http客户端代码在网络访问期间抛出一个异常,并在其中一个catch块中返回空值? 原因可能是没有可用的internet连接、AndroidManifest.xml中缺少权限、使用了错误的请求方法或出现了超时问题。 可能调试或记录请求代码、catch块和响应实体对于查找核心问题很有用。本文中提供了使用ConnectionManager系统服务和http连接检查internet连接的示例代码