android 基础 网络交互 HttpClient

转载 2016年05月31日 14:38:19

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();
}


BasicNameValuePair
定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类型),这个代码多处用于Java像url发送Post请求。在发送post请求时用该list来存放参数。
发送请求的大致过程如下:
String url="http://www.baidu.com";
HttpPost httppost=new HttpPost(url); //建立HttpPost对象
List<NameValuePair> params=new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
params.add(new BasicNameValuePair("pwd","2544"));
//添加参数
httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//设置编码
HttpResponse response=new DefaultHttpClient().execute(httppost);
//发送Post,并返回一个HttpResponse对象


EntityUtils

HttpClient4.3开源包,发现了EntityUtils这个对象,EntityUtils对象是org.apache.http.util下的一个工具类,用官方的解释是为HttpEntity对象提供的静态帮助类,其常用的几个方法如下:

        consume()方法;

        consumeQuietly(HttpEntity)方法

        toByteArray(final HttpEntity entity)方法

        最主要的就是consume()这个方法,其功能就是关闭HttpEntity是的流,如果手动关闭了InputStream instream = entity.getContent();这个流,也可以不调用这个方法。



Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例

本文介绍如何配置JavaEE版Eclipse的Tomcat作为服务器,Tomcat和桌面浏览器的简单交互,以及Android客户端使用HttpClient的HttpPost和HttpGet两种方式和T...

Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例

http://blog.csdn.net/yanzi1225627/article/details/24882569 前面相继介绍了Android网络编程里的Socket传输图片、HttpU...

Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例

zz:http://blog.csdn.net/yanzi1225627/article/details/24882569 前面相继介绍了Android网络编程里的Socket传输图片、Http...

Android基础笔记——HttpClient访问网络

首先,HttpClient是一个接口,因此无法创建它的实例,通常情况下都会创建一个DefaultHttpClient的实例: HttpClient httpClient = new DefaultHt...
  • etmessi
  • etmessi
  • 2015年03月08日 13:37
  • 367

Android网络基础之HttpClient与HttpURLConnection

基于面试中常常提及到这二者,我们就来看看Apache的HttpClient和Java的HttpURLConnection的区别 。以后或许对你们有用也说不定。1.HttpClient Android...

【Android基础】-基于Apache HttpClient封装的网络操作工具类

引言Http协议的重要性不用多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,使客户端...
  • tailyou
  • tailyou
  • 2015年09月03日 13:56
  • 468

Servlet和Android网络交互基础(1)

开发准备 在本篇文章开始前先介绍一下我使用的开发环境 Web MyEclipse+jdk +tomact 这里没有使用eclipse是因为MyEclipse已经继承了好多插件,无需自己...

Servlet和Android网络交互基础_MVP(2)

在第一章中我们实现了最基本的Servlet和Android用get进行网络交互功能。在实际开发中基本是需要带参数的,需要处理get/post,head,cookie,parameter等等;还要进行业...

Servlet和Android网络交互基础(3)

在上一章中采用了最简单的创建service端代码方式,但在实际开发中一般都会采用比较成熟的框架,下面是完整的maven+spring mvc 创建service的方式下载安装Eclipse 和jdk这...

Android中网络编程以及与服务器上Web项目的基础交互

1、Android网络编程初识 2、Android实现HTML源码查看 3、Android实现网络图片查看 4、Android实现与服务器上JavaWeb项目交互1、Android网络编程初识...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 基础 网络交互 HttpClient
举报原因:
原因补充:

(最多只允许输入30个字)