表單一
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); } }}