zoukankan      html  css  js  c++  java
  • Android http和xml解析

    窗体一

    package Http.View;
    
    import java.io.IOException;
    import java.io.StringReader;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.xml.parsers.SAXParserFactory;
    
    import mars.modle.Mp3Info;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.xml.sax.InputSource;
    import org.xml.sax.XMLReader;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class Post extends Activity {
     TextView mTextView = null;
     @Override
     protected void onCreate(Bundle savedInstanceState) 
     {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      setContentView(R.layout.post);
         mTextView = (TextView)this.findViewById(R.id.my);
            //http地址
            String httpUrl = "http://wap.51tes.com/i.asmx/c";
            //获得的数据
            HttpPost httpRequest = new HttpPost(httpUrl);
            //使用NameValuePair来保存要传递的Post数据
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            //添加需要的参数
            params.add(new BasicNameValuePair("c1","wm"));
            params.add(new BasicNameValuePair("c2","240*320"));
            params.add(new BasicNameValuePair("c3","1.0"));
            params.add(new BasicNameValuePair("c4","6365T"));
            try
            {
             //设置字符集
             HttpEntity httpentity = new UrlEncodedFormEntity(params,"utf8");
             //请求HttpRequest
             httpRequest.setEntity(httpentity);
             //取得默认的HttpClient
             HttpClient httpclient = new DefaultHttpClient();
             //取得HttpResponse
             HttpResponse httpResponse = httpclient.execute(httpRequest);
             //请求成功
             if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
             {
              //取得返回的字符串
              String strResult = EntityUtils.toString(httpResponse.getEntity());
              mTextView.setText(strResult);
              parse(strResult);
             }
             else
             {
              mTextView.setText("请求错误");
             }
            }
            catch(ClientProtocolException e)
            {
             mTextView.setText(e.getMessage().toString());
            }
         catch(IOException e)
         {
          mTextView.setText(e.getMessage().toString());
         }
         catch(Exception e)
         {
          mTextView.setText(e.getMessage().toString());
         }
      //设置按键事件监听
            Button button_Back = (Button)findViewById(R.id.Button_Back_POST);
            /*监听Button的时间信息*/
            button_Back.setOnClickListener(new Button.OnClickListener()
            {
             public void onClick(View v)
             {
              /*新建一个Intent对象*/
              Intent intent = new Intent();
              /*指定intent要启动的类*/
              intent.setClass(Post.this, Http.class);
              /*启动一个新的Activity*/
              startActivity(intent);
              /*关闭当前的Activity*/
              Post.this.finish();
             }
            });
     }
      private List<Mp3Info> parse(String xmlStr)
      {
          SAXParserFactory  saxParserFactory = SAXParserFactory.newInstance();
          List<Mp3Info> infos = new ArrayList<Mp3Info>();
          try
          {
       XMLReader xmlReader = saxParserFactory.newSAXParser().getXMLReader();
       MyContentHandler mp3ListContentHandler = new MyContentHandler(infos);
       xmlReader.setContentHandler(mp3ListContentHandler);
       xmlReader.parse(new InputSource(new StringReader(xmlStr))); 
       for(Iterator<Mp3Info> iterator = infos.iterator();iterator.hasNext();)
       {
        Mp3Info mp3Info = iterator.next();
        System.out.println(mp3Info);
       }
          }
          catch(Exception e)
      {
       e.printStackTrace();
      }
      return infos;
      }
    }

    窗体2

    package Http.View;
    
    import java.util.List;
    
    import mars.modle.Mp3Info;
    
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class MyContentHandler extends DefaultHandler
    {
     private List<Mp3Info> infos = null;
     public MyContentHandler(List<Mp3Info> infos) 
     {
      super();
      this.infos = infos;
     }
     public List<Mp3Info> getInfos() 
     {
      return infos;
     }
     public void setInfos(List<Mp3Info> infos) 
     {
      this.infos = infos;
     }
     private Mp3Info mp3Info = null;
     private String tagName;
        public void startDocument() throws SAXException
        {
         
        }
        public void endDocument() throws SAXException
        {
         
        }
        public void startElement(String nameSpaceURI,String localName, String qName, Attributes attr) throws SAXException
        {
         this.tagName = localName;
      if(localName.equals("E"))
      {
       mp3Info = new Mp3Info();
      }
        }
        public void endElement(String nameSpaceURI,String localName, String qName, Attributes attr) throws SAXException
        {
      if(qName.equals("E"))
      {
       infos.add(mp3Info);
      }
         tagName = null;
        }
        public void characters (char[] ch, int start, int length) throws SAXException
        {
         String temp = new String (ch, start, length);
         if(tagName.equals("E1"))
         {
          mp3Info.setE1(temp);
         }
         else if(tagName.equals("E2"))
         {
          mp3Info.setE2(temp);
         }
         else if(tagName.equals("E3"))
         {
          mp3Info.setE3(temp);
         }
         else if(tagName.equals("E4"))
         {
          mp3Info.setE4(temp);
         }
         else if(tagName.equals("E5"))
         {
          mp3Info.setE5(temp);
         }
        }
    }
    
     
    
    
  • 相关阅读:
    springmvc
    POJ 3683 Priest John's Busiest Day
    POJ 3678 Katu Puzzle
    HDU 1815 Building roads
    CDOJ UESTC 1220 The Battle of Guandu
    HDU 3715 Go Deeper
    HDU 3622 Bomb Game
    POJ 3207 Ikki's Story IV
    POJ 3648 Wedding
    HDU 1814 Peaceful Commission
  • 原文地址:https://www.cnblogs.com/lm3515/p/2000335.html
Copyright © 2011-2022 走看看