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 基础 网络交互 HttpClient HttpUrlConnection

什么情况下使用HttpClient (当用户已经登录,而且登录用户的用户名有效时才可访问该页面,这个时候用HttpClient) HTTP 协议可能是现在 Internet 上使用得最多、最重要的...
  • l331258747
  • l331258747
  • 2016年05月30日 15:41
  • 188

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

本文介绍如何配置JavaEE版Eclipse的Tomcat作为服务器,Tomcat和桌面浏览器的简单交互,以及Android客户端使用HttpClient的HttpPost和HttpGet两种方式和T...
  • yanzi1225627
  • yanzi1225627
  • 2014年05月03日 15:08
  • 31773

android 基础 网络交互 HttpConnection交互

get方式:           get机制用的是在URL地址里面通过?号间隔,然后以name=value的形式给客户端传递参数。所以首先要在Android工程下的AndroidGe...
  • l331258747
  • l331258747
  • 2016年05月30日 16:42
  • 175

android 基础 网络交互,思路

1,界面传参(url,params,id,lisenter) url,地址 params,参数 id,一个界面多个交互,用id来识别 lisenter,处理结果的回调 2,new h...
  • l331258747
  • l331258747
  • 2016年09月18日 16:38
  • 115

HTTP 交互

HTTP是超文本转移协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息, 客户机需要通过HTTP协议传输所要访问的超文本信息。H...
  • alitter
  • alitter
  • 2014年08月20日 15:53
  • 1244

android5.0无法使用HttpClient解决办法

由于官方不再推荐使用HttpClient而是推荐使用HttpUrlConnection 原因可以看下 http://www.androidchina.net/394.html 如果需要使用Http...
  • fengzijia
  • fengzijia
  • 2015年12月12日 20:59
  • 2321

Android网络编程基础(一) - 基础知识

内容介绍:Android网络编程基础 博客地址:http://blog.csdn.net/kevindgk 版权声明:本文为原创文章,未经允许不得转载 联系方式:815852777...
  • KevinDGK
  • KevinDGK
  • 2016年08月16日 17:45
  • 2289

android网络交互

主题、动画、国际化、网络交互的原理、Android网络编程API、网络图片查看器、子线程不可以直接操作UI、消息机制常见类介绍、网页html源码查看器、消息处理常见API、消息处理的原理、smarti...
  • daividtu
  • daividtu
  • 2016年01月28日 22:17
  • 250

android的HttpClient添加请求超时时间

在以前做一个android的移动项目的时候,想为httpClient对象添加请求超时和读取超时时间,发现httpClient的对象实现的defaultHttpClient对象中就没有设置超时时间的方法...
  • android_xiaozhou
  • android_xiaozhou
  • 2014年08月04日 13:35
  • 2015

Android-Async-HttpClient 源码解析

本博文同步在本人独立博客上发布,如有错误,请多多指教。  前几天去参加一个面试,被问到了一些android 网络方面的知识,发现自己在这个方面还有些不足,需要自我补充一下相关的知识,于是最近找了些开...
  • u012422440
  • u012422440
  • 2015年09月27日 14:45
  • 786
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 基础 网络交互 HttpClient
举报原因:
原因补充:

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