• 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);
         }
        }
    }
    
     
    
    
  • 相关阅读:
    BAPI LIST
    如何设计折叠屏幕
    图形学习 Javascript 正则 regexper.com
    Javascript 的数据是什么数据类型?
    Javascript 严格模式下不允许删除一个不允许删除的属性
    Javascript 在严格模式下禁止指向 this
    指针自增学习
    Javascript 严格模式下几个禁忌
    笔记本设置 2K 显示屏 Intel HD Graphics 3000
    Javascript 在严格模式下不允许删除变量或对象
  • 原文地址:https://www.cnblogs.com/lm3515/p/2000335.html
Copyright © 2020-2023  润新知