首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

android http协议post请求模式

2012-09-27 
android http协议post请求方式方式一:HttpPost(import org.apache.http.client.methods.HttpPost代码如下:

android http协议post请求方式
方式一:HttpPost(import org.apache.http.client.methods.HttpPost

代码如下:private Button button1,button2,button3;private TextView textView1;button1.setOnClickListener(new Button.OnClickListener(){            @Override   public void onClick(View arg0) {    // TODO Auto-generated method stub    //URL?//     String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/Post/index.php";     String uriAPI = "http://172.20.0.206:8082//TestServelt/login.do";    /*建立HTTP Post连线*/    HttpPost httpRequest =new HttpPost(uriAPI);    //Post运作传送变数必须用NameValuePair[]阵列储存    //传参数 服务端获取的方法为request.getParameter("name")    List <NameValuePair> params=new ArrayList<NameValuePair>();    params.add(new BasicNameValuePair("name","this is post"));    try{               //发出HTTP request     httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));     //取得HTTP response     HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);          //若状态码为200 ok      if(httpResponse.getStatusLine().getStatusCode()==200){      //取出回应字串      String strResult=EntityUtils.toString(httpResponse.getEntity());      textView1.setText(strResult);     }else{      textView1.setText("Error Response"+httpResponse.getStatusLine().toString());     }    }catch(ClientProtocolException e){     textView1.setText(e.getMessage().toString());     e.printStackTrace();    } catch (UnsupportedEncodingException e) {     textView1.setText(e.getMessage().toString());     e.printStackTrace();    } catch (IOException e) {     textView1.setText(e.getMessage().toString());     e.printStackTrace();    }   }                 });


方式二:HttpURLConnection、URL(import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;)
private void httpUrlConnection(){    try{     String pathUrl = "http://172.20.0.206:8082/TestServelt/login.do";     //建立连接     URL url=new URL(pathUrl);     HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();          ////设置连接属性     httpConn.setDoOutput(true);//使用 URL 连接进行输出     httpConn.setDoInput(true);//使用 URL 连接进行输入     httpConn.setUseCaches(false);//忽略缓存     httpConn.setRequestMethod("POST");//设置URL请求方法     String requestString = "客服端要以以流方式发送到服务端的数据...";          //设置请求属性    //获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致          byte[] requestStringBytes = requestString.getBytes(ENCODING_UTF_8);          httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);          httpConn.setRequestProperty("Content-Type", "application/octet-stream");          httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接          httpConn.setRequestProperty("Charset", "UTF-8");          //          String name=URLEncoder.encode("黄武艺","utf-8");          httpConn.setRequestProperty("NAME", name);                    //建立输出流,并写入数据          OutputStream outputStream = httpConn.getOutputStream();          outputStream.write(requestStringBytes);          outputStream.close();         //获得响应状态          int responseCode = httpConn.getResponseCode();          if(HttpURLConnection.HTTP_OK == responseCode){//连接成功                      //当正确响应时处理数据           StringBuffer sb = new StringBuffer();              String readLine;              BufferedReader responseReader;             //处理响应流,必须与服务器响应流输出的编码一致              responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), ENCODING_UTF_8));              while ((readLine = responseReader.readLine()) != null) {               sb.append(readLine).append("\n");              }              responseReader.close();              tv.setText(sb.toString());          }    }catch(Exception ex){     ex.printStackTrace();    }   }


==================================================================================
package alex.reader.ebook.bam;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.apache.http.HttpResponse;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.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.params.HttpClientParams;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.EditText;public class SimpleClient extends Activity {    private HttpParams httpParams;    private HttpClient httpClient;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.simple_client);        EditText editText = (EditText) this.findViewById(R.id.EditText01);        List<NameValuePair> params = new ArrayList<NameValuePair>();        params.add(new BasicNameValuePair("email", "firewings.r@gmail.com"));        params.add(new BasicNameValuePair("password", "954619"));        params.add(new BasicNameValuePair("remember", "1"));        params.add(new BasicNameValuePair("from", "kx"));        params.add(new BasicNameValuePair("login", "登 录"));        params.add(new BasicNameValuePair("refcode", ""));        params.add(new BasicNameValuePair("refuid", "0"));        Map params2 = new HashMap();        params2.put("hl", "zh-CN");        params2.put("source", "hp");        params2.put("q", "haha");        params2.put("aq", "f");        params2.put("aqi", "g10");        params2.put("aql", "");        params2.put("oq", "");        String url2 = "http://www.google.cn/search";        String url = "http://wap.kaixin001.com/home/";        getHttpClient();        editText.setText(doPost(url, params));        // editText.setText(doGet(url2, params2));    }    public String doGet(String url, Map params) {        /* 建立HTTPGet对象 */        String paramStr = "";        Iterator iter = params.entrySet().iterator();        while (iter.hasNext()) {            Map.Entry entry = (Map.Entry) iter.next();            Object key = entry.getKey();            Object val = entry.getValue();            paramStr += paramStr = "&" + key + "=" + val;        }        if (!paramStr.equals("")) {            paramStr = paramStr.replaceFirst("&", "?");            url += paramStr;        }        HttpGet httpRequest = new HttpGet(url);        String strResult = "doGetError";        try {            /* 发送请求并等待响应 */            HttpResponse httpResponse = httpClient.execute(httpRequest);            /* 若状态码为200 ok */            if (httpResponse.getStatusLine().getStatusCode() == 200) {                /* 读返回数据 */                strResult = EntityUtils.toString(httpResponse.getEntity());            } else {                strResult = "Error Response: "                        + httpResponse.getStatusLine().toString();            }        } catch (ClientProtocolException e) {            strResult = e.getMessage().toString();            e.printStackTrace();        } catch (IOException e) {            strResult = e.getMessage().toString();            e.printStackTrace();        } catch (Exception e) {            strResult = e.getMessage().toString();            e.printStackTrace();        }        Log.v("strResult", strResult);        return strResult;    }    public String doPost(String url, List<NameValuePair> params) {        /* 建立HTTPPost对象 */        HttpPost httpRequest = new HttpPost(url);        String strResult = "doPostError";        try {            /* 添加请求参数到请求对象 */            httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));            /* 发送请求并等待响应 */            HttpResponse httpResponse = httpClient.execute(httpRequest);            /* 若状态码为200 ok */            if (httpResponse.getStatusLine().getStatusCode() == 200) {                /* 读返回数据 */                strResult = EntityUtils.toString(httpResponse.getEntity());            } else {                strResult = "Error Response: "                        + httpResponse.getStatusLine().toString();            }        } catch (ClientProtocolException e) {            strResult = e.getMessage().toString();            e.printStackTrace();        } catch (IOException e) {            strResult = e.getMessage().toString();            e.printStackTrace();        } catch (Exception e) {            strResult = e.getMessage().toString();            e.printStackTrace();        }        Log.v("strResult", strResult);        return strResult;    }    public HttpClient getHttpClient() {        // 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)        this.httpParams = new BasicHttpParams();        // 设置连接超时和 Socket 超时,以及 Socket 缓存大小        HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);        HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);        HttpConnectionParams.setSocketBufferSize(httpParams, 8192);        // 设置重定向,缺省为 true        HttpClientParams.setRedirecting(httpParams, true);        // 设置 user agent        String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";        HttpProtocolParams.setUserAgent(httpParams, userAgent);        // 创建一个 HttpClient 实例        // 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient        // 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient        httpClient = new DefaultHttpClient(httpParams);        return httpClient;    }}

转载http://blog.csdn.net/firewings_r/archive/2010/03/12/5374851.aspx
=================================================================

热点排行