Android http和xml解析

來源:互聯網
上載者:User

表單一

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);     }    }} 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.