欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中使用Post请求的方法

程序员文章站 2023-11-18 13:03:28
本文实例讲述了android中使用post请求的方法。分享给大家供大家参考。具体如下: 一、需要用到的场景 在jquery中使用$.post()就可以方便的发起一个po...

本文实例讲述了android中使用post请求的方法。分享给大家供大家参考。具体如下:

一、需要用到的场景

在jquery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了。

二、需要用到的主要类

在android中使用post请求主要要用到的类是httppost、httpresponse、entityutils

三、主要思路

1、创建httppost实例,设置需要请求服务器的url。

2、为创建的httppost实例设置参数,参数设置时使用键值对的方式用到namevaluepair类。

3、发起post请求获取返回实例httpresponse

4、使用entityutils对返回值的实体进行处理(可以取得返回的字符串,也可以取得返回的byte数组)

代码也比较简单,注释也加上了,就直接贴出来了

package com.justsy.url;
import java.io.ioexception;
import java.util.arraylist;
import java.util.list;
import org.apache.http.httpresponse;
import org.apache.http.namevaluepair;
import org.apache.http.client.clientprotocolexception;
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.protocol.http;
import org.apache.http.util.entityutils;
import android.app.activity;
import android.os.bundle;
public class httpurlactivity extends activity {
  @override
  public void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    system.out.println("start url...");
    string url = "http://192.168.2.112:8080/justsyapp/applet";
    // 第一步,创建httppost对象
    httppost httppost = new httppost(url);
    // 设置http post请求参数必须用namevaluepair对象
    list<namevaluepair> params = new arraylist<namevaluepair>();
    params.add(new basicnamevaluepair("action", "downloadandroidapp"));
    params.add(new basicnamevaluepair("packageid", "89dcb664-50a7-4bf2-aeed-49c08af6a58a"));
    params.add(new basicnamevaluepair("uuid", "test_ok1"));
    httpresponse httpresponse = null;
    try {
      // 设置httppost请求参数
      httppost.setentity(new urlencodedformentity(params, http.utf_8));
      httpresponse = new defaulthttpclient().execute(httppost);
      //system.out.println(httpresponse.getstatusline().getstatuscode());
      if (httpresponse.getstatusline().getstatuscode() == 200) {
        // 第三步,使用getentity方法活得返回结果
        string result = entityutils.tostring(httpresponse.getentity());
        system.out.println("result:" + result);
        t.displaytoast(httpurlactivity.this, "result:" + result);
      }
    } catch (clientprotocolexception e) {
      e.printstacktrace();
    } catch (ioexception e) {
      e.printstacktrace();
    }
    system.out.println("end url...");
    setcontentview(r.layout.main);
  }
}

add:使用httpurlconnection 进行post请求:

string path = "http://192.168.2.115:8080/android-web-server/httpconnectservlet.do?packageid=89dcb664-50a7-4bf2-aeed-49c08af6a58a";
url url = new url(path);
httpurlconnection conn = (httpurlconnection) url.openconnection();
conn.setrequestmethod("post");
conn.setconnecttimeout(5000);
system.out.println(conn.getresponsecode());

希望本文所述对大家的android程序设计有所帮助。