HttpURLConnection请求与Pull解析

来源:互联网 发布:erp软件开发 编辑:程序博客网 时间:2024/05/20 20:05

//请求方法

private void getHttp() {
        // TODO Auto-generated method stub
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    URL url = new URL(你的URL);

                    HttpURLConnection h = (HttpURLConnection) url
                            .openConnection();

                    h.connect();

                    InputStream is = h.getInputStream();

                    /*BufferedReader br=new BufferedReader(new InputStreamReader(is));
                    String tag = "";
                    while((tag = br.readLine()) != null){
                        
                        tag += br.readLine();
                        Log.i("yang", tag);
                    }*/
                    List<Book> book = getXml(is);
                    
                    Message mag=new Message();
                    mag.obj = book;
                    handler.sendMessage(mag);
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }).start();
    }

//解析方法

private List<Book> getXml(InputStream is) {
        // TODO Auto-generated method stub

        try {
            XmlPullParser newPullParser = Xml.newPullParser();
            newPullParser.setInput(is, "UTF-8");

            int eventType = newPullParser.getEventType();
            while (isFlag) {
                switch (eventType) {
                case XmlPullParser.START_DOCUMENT:

                    list = new ArrayList<Book>();
                    break;
                case XmlPullParser.START_TAG:
                    tagNmae = newPullParser.getName();
                    
                    if(tagNmae.equals("item")){
                        book = new Book();
                    }
                    break;
                case XmlPullParser.TEXT:
                    
                    if(tagNmae.equals("id")){
                        book.setId(newPullParser.getText());
                    }else if(tagNmae.equals("catalog")){
                        book.setCatalog(newPullParser.getText());
                    }
                    break;
                case XmlPullParser.END_TAG:

                    tagNmae = newPullParser.getName();
                    if(tagNmae.equals("item")){
                        list.add(book);
                    }
                    break;
                case XmlPullParser.END_DOCUMENT:
                    
                    isFlag = false;
                    //Log.i("yang", list.toString());
                    return list;
                    

                }
                
                eventType = newPullParser.next();
            }
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

//显示数据

private Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            
            List<Book> list2=(List<Book>) msg.obj;
            //Log.i("yang", list2.toString());
            for (Book book : list2) {
                name.add(book.getCatalog());
            }
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, name);
            lv.setAdapter(adapter);
        };
    };

0 0
原创粉丝点击