android http-post方法简单实现
本代码演示在 Android 如何使用 POST 来提交数据
[代码] [Java]代码
001package com.hl;
002
003import java.io.BufferedReader;
004import java.io.IOException;
005import java.io.InputStream;
006import java.io.InputStreamReader;
007import java.util.ArrayList;
008import java.util.HashMap;
009import java.util.Iterator;
010import java.util.Map;
011import java.util.Set;
012
013import org.apache.http.HttpEntity;
014import org.apache.http.HttpResponse;
015import org.apache.http.client.entity.UrlEncodedFormEntity;
016import org.apache.http.client.methods.HttpPost;
017import org.apache.http.impl.client.DefaultHttpClient;
018import org.apache.http.message.BasicNameValuePair;
019
020import android.app.Activity;
021import android.os.Bundle;
022import android.view.View;
023import android.view.View.OnClickListener;
024import android.widget.Button;
025import android.widget.EditText;
026import android.widget.TextView;
027
028public class SimplePOST extends Activity {
029 private TextView show;
030 private EditText txt;
031 private Button btn;
032
033 @Override
034 public void onCreate(Bundle savedInstanceState) {
035 super.onCreate(savedInstanceState);
036 setContentView(R.layout.main);
037 show = (TextView)findViewById(R.id.show);
038 txt = (EditText)findViewById(R.id.txt);
039 btn = (Button)findViewById(R.id.btn);
040 btn.setOnClickListener(new OnClickListener() {
041
042 @Override
043 public void onClick(View v) {
044 dopost(txt.getText().toString());
045
046 }
047 });
048 }
049
050 private void dopost(String val){
051 //封装数据
052 Map parmas = new HashMap();
053 parmas.put("name", val);
054
055 DefaultHttpClient client = new DefaultHttpClient();//http客户端
056 HttpPost httpPost = newHttpPost("http://mhycoe.com/test/post.php");
057
058 ArrayList pairs = newArrayList();
059 if(parmas != null){
060 Set keys = parmas.keySet();
061 for(Iterator i = keys.iterator(); i.hasNext();) {
062 String key = (String)i.next();
063 pairs.add(new BasicNameValuePair(key, parmas.get(key)));
064 }
065 }
066
067 try {
068 UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs,"utf-8");
069 /*
070 * 将POST数据放入HTTP请求
071 */
072 httpPost.setEntity(p_entity);
073 /*
074 * 发出实际的HTTP POST请求
075 */
076 HttpResponse response = client.execute(httpPost);
077 HttpEntity entity = response.getEntity();
078 InputStream content = entity.getContent();
079 String returnConnection = convertStreamToString(content);
080 show.setText(returnConnection);
081 } catch (IllegalStateException e) {
082 e.printStackTrace();
083 } catch (IOException e) {
084 e.printStackTrace();
085 }
086
087 }
088
089 private String convertStreamToString(InputStream is) {
090 BufferedReader reader = new BufferedReader(newInputStreamReader(is));
091 StringBuilder sb = new StringBuilder();
092 String line = null;
093 try {
094 while ((line = reader.readLine()) != null) {
095 sb.append(line);
096 }
097 } catch (IOException e) {
098 e.printStackTrace();
099 } finally {
100 try {
101 is.close();
102 } catch (IOException e) {
103 e.printStackTrace();
104 }
105 }
106 return sb.toString();
107 }
108}