Android HttpClient GET或者POST请求基本使用方法

 更新时间:2012年12月11日 15:30:41   作者:  
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.这里只介绍如何使用HttpClient发起GET或者POST请求
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功能远不止这些)

这里只介绍如何使用HttpClient发起GET或者POST请求
GET 方式
复制代码 代码如下:

//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "中国"));
params.add(new BasicNameValuePair("param2", "value2"));
//对参数编码
String param = URLEncodedUtils.format(params, "UTF-8");
//baseUrl
String baseUrl = "http://ubs.free4lab.com/php/method.php";
//将URL与参数拼接
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);

HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

POST方式
复制代码 代码如下:

//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二个参数"));

try {
HttpPost postMethod = new HttpPost(baseUrl);
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中

HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容

} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

相关文章

  • Android 拍照选择图片并上传功能的实现思路(包含权限动态获取)

    Android 拍照选择图片并上传功能的实现思路(包含权限动态获取)

    这篇文章主要介绍了Android 拍照(选择图片)并上传(包含权限动态获取),本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Android拍照裁剪图片

    Android拍照裁剪图片

    智能手机像素非常高,完全可以当相机使用,下面一段代码给大家分享了android拍照裁剪图片的功能,对android拍照裁剪图片相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Kotlin中使用Dagger2可能遇到的坑解决

    Kotlin中使用Dagger2可能遇到的坑解决

    在Android上创建去耦以及容易测试代码的几乎每位迟早都要诉诸Dagger,在Kotlin中设置Dagger有一些不同,所以下面这篇文章主要给大家介绍了关于Kotlin中使用Dagger2可能遇到的坑的解决方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • android 自定义Android菜单背景的代码

    android 自定义Android菜单背景的代码

    如何自定义Android菜单背景呢? 默认的情况下Android系统的菜单是白色的,下面的例子可以通过自定义的xml布局实现个性化的menu
    2013-01-01
  • Android自定义控件开发实战之实现ListView下拉刷新实例代码

    Android自定义控件开发实战之实现ListView下拉刷新实例代码

    这篇文章主要介绍了Android自定义控件开发实战之实现ListView下拉刷新实例代码的相关资料,需要的朋友可以参考下
    2016-04-04
  • RecyclerView的使用之多种Item加载布局

    RecyclerView的使用之多种Item加载布局

    本文给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不同的Layout
    2016-03-03
  • Android系统的五种数据存储形式实例(二)

    Android系统的五种数据存储形式实例(二)

    Android系统有五种数据存储形式,分别是文件存储、SP存储、数据库存储、contentprovider 内容提供者、网络存储。本文介绍了Android系统的五种数据存储形式,有兴趣的可以了解一下。
    2016-12-12
  • Jetpack navigation组件超详细讲解

    Jetpack navigation组件超详细讲解

    首先Navigation是一个架构组件,因为切换Activity是一个Binder通信的过程,所以Activity是属于比较重的组件。而Fragment的切换其实只是View的切换,比较轻量级。因此单Activity加Fragment切换成为了比较常见的架构方式
    2022-10-10
  • Android实现仿网易新闻的顶部导航指示器

    Android实现仿网易新闻的顶部导航指示器

    这篇文章主要介绍了Android实现仿网易新闻的顶部导航指示器的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • Android 使用VideoView播放MP4的简单实现

    Android 使用VideoView播放MP4的简单实现

    这篇文章主要介绍了Android 使用VideoView播放MP4的简单实现,实现简单的播放功能,播放手机本地的MP4文件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论