Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • android http-post方法简单实现

    post by onelong / 2010-9-10 1:14 Friday [android]

    package com.hl;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    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 android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    public class SimplePOST extends Activity {
     private TextView show;
     private EditText txt;
     private Button btn;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            show = (TextView)findViewById(R.id.show);
            txt = (EditText)findViewById(R.id.txt);
            btn = (Button)findViewById(R.id.btn);
            btn.setOnClickListener(new OnClickListener() {
       
       @Override
       public void onClick(View v) {
        dopost(txt.getText().toString());
        
       }
      });
        }

     private void dopost(String val){
         //封装数据
         Map<String, String> parmas = new HashMap<String, String>();
         parmas.put("name", val);
        
         DefaultHttpClient client = new DefaultHttpClient();//http客户端
         HttpPost httpPost = new HttpPost("http://mhycoe.com/test/post.php");
        
         ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
         if(parmas != null){
             Set<String> keys = parmas.keySet();
             for(Iterator<String> i = keys.iterator(); i.hasNext();) {
                  String key = (String)i.next();
                  pairs.add(new BasicNameValuePair(key, parmas.get(key)));
             }
        }
        
      try {
       UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, "utf-8");
             /*
              *  将POST数据放入HTTP请求
              */
             httpPost.setEntity(p_entity);
             /*
              *  发出实际的HTTP POST请求
               */
             HttpResponse response = client.execute(httpPost);
             HttpEntity entity = response.getEntity();
             InputStream content = entity.getContent();
       String returnConnection = convertStreamToString(content);
             show.setText(returnConnection);
      } catch (IllegalStateException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
        
     }

      private String convertStreamToString(InputStream is) {
       BufferedReader reader = new BufferedReader(new InputStreamReader(is));
             StringBuilder sb = new StringBuilder();
             String line = null;
             try {
                  while ((line = reader.readLine()) != null) {
                       sb.append(line);
                  }
             } catch (IOException e) {
                  e.printStackTrace();
             } finally {
                  try {
                       is.close();
                  } catch (IOException e) {
                       e.printStackTrace();
                  }
             }
             return sb.toString();
     }
    }

    引用地址:
     

    评论:

    1. Morcics
      bb.txt open error
      博主回复:你要换一个网址才行呀!!
    2. 大大幫幫忙
      小弟小做一個
      地圖程式 但對android 概念不深
      因為我的需求是  定位完後 撈取資料庫資料 顯示在 map上
      我聽友的大大說可以用
      android<--->php webservice<---->mysql
      還有   http post 這類的 但教學都不完整  有的只有觀念 沒實作
      想請問大大  可以請教您如何寫麻
      我拜了  google 大神 百度  也都找不到
      我的 QQ是    vigi588@livemail.tw
      博主回复:php webservice 我不太了解呀!!但是 http post本身的例子就很简单,很多书或者网络教程都有的!!

    我要评论