,,AndroidHttpClient详解及调用示例

,,AndroidHttpClient详解及调用示例

本文介绍了AndroidHttpClient的结构、用法和调用实例。有需要的朋友可以参考一下。

下面给大家展示了AndroidHttpClient结构:

公共最终课程

AndroidHttpClient

扩展对象

实现HttpClient

这个类其实是Google的Apache HttpClient的一个包,一些默认属性是android优化的。

然后Apache的HttpClient是java对HttpUrlConnection的封装,感觉Apache的封装还是不错的。

尤其是HttpEntity,功能非常强大,很好用,在安卓手机上可以上传几百个M文件到服务器,还是不错的。

一: AndroidHttpClient的使用方式

1.创建AndroidHttpClient对象

AndroidHttpClient c=AndroidHttpClient . new instance(' ');

AndroidHttpClient只能通过上面的方法建立,而且里面的参数好像设置成了proxy,如果不是空的话,也可以。

2.使用打开cookies

AndroidHttpClient默认关闭cookies,打开它们的方法如下

AndroidHttpClient c=AndroidHttpClient . new instance(' ');

BasicHttpContext context=new BasicHttpContext();

context . set attribute(client context。COOKIE_STORE,new BasicCookieStore());

尝试{

c.execute(空,上下文);

} catch (IOException e) {

//TODO自动生成的catch块

e . printstacktrace();

}

其中可以在客户端发送请求的同时发送上下文。request方法的第一个参数非常重要,下面将详细解释。

二: HttpUriRequest 使用

1.上面的c.execute(null,context);第一个参数是HttpUriRequest,用于封装请求信息。

HttpUriRequest提供了两个子类供使用。相信你闭着眼睛都能猜出来,没错!也就是HttpGet和HttpPost。

2 .好,我们先来看看HttpGet是怎么用的。

题外话,其实从这个方法的名字就可以看出,get,

Get的意思是获取,所以如果你想从服务器上获取任何数据,就多使用它。

HttpGet提供了三个构造函数:

—— HttpGet()

—— HttpGet ( URI uri)

—— HttpGet(字符串uri)

看上面最后两个构造方法,应该能猜出那个参数的意思,就是want

获取文件的地址!其实第一个没有提供地址,但是HttpGet提供了。

方法可以设置资源地址:http get . seturi(URI uri);

看他具体的初始化方法:

方法1:

尝试{

final String _ URI=' www . Baidu . com ';

http get request get=new http get();

requestGet.setURI(新URI(_ URI));

} catch (URISyntaxException e) {

//TODO自动生成的catch块

e . printstacktrace();

}

方法二:

尝试{

final String _ URI=' www . Baidu . com ';

HttpGet requestGet=new HttpGet(新URI(_ URI));

} catch (URISyntaxException e) {

//TODO自动生成的catch块

e . printstacktrace();

}

模式3:

final String _ URI=' www . Baidu . com ';

http get request get=new http get(_ URI);

3.好吧,当HttpGet对象被创建时,你可以把它放入AndroidHttpClient进行访问。

据说有人用Get访问的时候,可以在后面加上用户名密码什么的吗?其实你加不加?

可以,因为从服务器获取的方式是一样的,但是如果有参数的话我觉得没必要。

直接加在资源地址后面,因为我觉得太丑了。看起来不整洁,哈哈。

然后有人说,有参数怎么办?下面给你解答,HttpPost在现场!

4.4最NB的地方。HttpPost是可以放入一个实体并发送给服务器的。这

实体可以封装各种数据,把要发送的数据封装到实体中,然后调用HttpPost的setEntity方法。

只需将实体放入其中并发送请求。那么我们来解释一下什么样的数据实体可以封装。

三:HttpEntity讲解(重点)

有些同学可能会觉得单词读多了没意思。有照片就好了。既然每个人都有要求,那就满足你。

Android HttpClient调用示例

1. GET

//首先将参数放入列表,然后对参数进行URL编码

ListBasicNameValuePair params=new LinkedListBasicNameValuePair();

params.add(新的基本名称值对(' param1 ','中国'));

参数。add(新的基本名称值对(' param 2 ',' value 2 '));

//对参数编码

string param=urlencodedutils。格式(参数,“UTF-8”);

//baseUrl

字符串基URL=' http://UBS。免费4实验室。com/PHP/method。PHP ';

//将统一资源定位器与参数拼接

http get get method=new http get(基本URL '?'param);

http client http client=新的默认http client();

尝试{

HttpResponse响应=http客户端。execute(get方法);//发起得到请求

Log.i(标记,' resCode=' response。getstatusline().getStatusCode());//获取响应码

Log.i(TAG,' result=' entity utils。tostring(响应。getentity(),' utf-8 ');//获取服务器响应内容

} catch(clientprotocoleexception e){

//TODO自动生成的捕捉块

e。printstacktrace();

} catch (IOException e) {

//TODO自动生成的捕捉块

e。printstacktrace();

}

2. POST

//和得到方式一样,先将参数放入目录

params=new LinkedListBasicNameValuePair();

params.add(新的基本名称值对(' param1 ',' Post方法'));

params.add(新的基本名称值对(' param2 ','第二个参数'));

尝试{

http post post方法=新建http post(基本URL);

post方法。setentity(new UrlEncodedFormEntity(params,' utf-8 '));//将参数填入过帐实体中

HttpResponse响应=http客户端。execute(post方法);//执行邮政方法

Log.i(标记,' resCode=' response。getstatusline().getStatusCode());//获取响应码

Log.i(TAG,' result=' entity utils。tostring(响应。getentity(),' utf-8 ');//获取响应内容

} catch(UnsupportedEncodingException e){

//TODO自动生成的捕捉块

e。printstacktrace();

} catch(clientprotocoleexception e){

//TODO自动生成的捕捉块

e。printstacktrace();

} catch (IOException e) {

//TODO自动生成的捕捉块

e。printstacktrace();

}

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: