Android中使用Post请求的方法

 更新时间:2015年07月31日 10:40:46   作者:akwolf  
这篇文章主要介绍了Android中使用Post请求的方法,实例分析了Android中使用post请求的原理与具体实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Android应用App更新实例详解

    Android应用App更新实例详解

    现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新。该项目实现的就是这个功能。下面跟着小编一起来看下吧
    2017-03-03
  • Activity取消界面切换的默认动画方法(推荐)

    Activity取消界面切换的默认动画方法(推荐)

    下面小编就为大家带来一篇Activity取消界面切换的默认动画方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • android 自定义view实现彩虹进度条功能

    android 自定义view实现彩虹进度条功能

    实现一个彩虹色进度条功能,不说明具体用途大家应该能猜到,想找别人造的轮子,但是没有合适的,所以决定自己实现一个,下面小编通过实例代码给大家分享android 自定义view实现彩虹进度条功能,感兴趣的朋友一起看看吧
    2024-06-06
  • Android 滚动时间选择的示例代码

    Android 滚动时间选择的示例代码

    这篇文章主要介绍了Android 滚动时间选择的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Android 安全加密:对称加密详解

    Android 安全加密:对称加密详解

    本文主要介绍Android 安全加密对称加密,这里整理了详细的资料及介绍凯撒密码和对称密码的资料,有兴趣的小伙伴可以参考下
    2016-09-09
  • Android Drawable代码编写的新姿势分享

    Android Drawable代码编写的新姿势分享

    Drawable是什么?按照字面翻译,就是可绘制的,由于能够绘制的东西很多,所以这个类是一个抽象类,下面这篇文章主要给大家介绍了关于Android Drawable代码编写的新姿势,需要的朋友可以参考下
    2022-01-01
  • Android解决所有双击优化的问题

    Android解决所有双击优化的问题

    这篇文章主要为大家介绍了Android解决所有双击优化的问题,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Android实现沉浸式状态栏功能

    Android实现沉浸式状态栏功能

    这篇文章主要为大家详细介绍了Android实现沉浸式状态栏功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Flutter学习之矢量图SVG的区域填色示例详解

    Flutter学习之矢量图SVG的区域填色示例详解

    这篇文章主要为大家介绍了Flutter学习之矢量图SVG的区域填色示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android 中的两端对齐实例详解

    Android 中的两端对齐实例详解

    这篇文章主要介绍了Android 中的两端对齐实例详解的相关资料,需要的朋友可以参考下
    2017-01-01

最新评论