注意:在程序中若要使用的HttpClient会搜索不到,需要在build.grade文件的android节点下添加
useLibrary 'org.apache.http.legacy' //重新编译一下就会自动导包
1.对了HTTPClient类的介绍
HttpClient是Apache Jkarta Common下的子项目,用来提供高效的,最新的,功能丰富的支持HTTP协议的客户端编程工具包,并且支持HTTP协议最新的版本和建议。
2.HTTPClient基本使用
1.创建HttpClient的实例(了HTTPClient是接口,不能直接实例化对象,可以创建子类的对象赋值给父类的对象)。
例如:HttpClient Cient = new DefaultHttpClient();
2.配置一些参数(超时时间等)
例如:client.getParams()setIntParamter(HttpConnectionParams.CONNECTION_TIMEOUT,3000);。
// client.getParams() - >获取客户机的参数,返回一个HttpParam对象(表示http协议和框架的集合)
// setIntParamter(Stringname,int value)用指定的名称为参数分配一个整数
3.创建请求方法的实例并指定URL(此处创建HttpPost对象)
例如:HttpPostmPost = new HttpPost(Stringurl);
4.将要请求的内容通过请求对象的setEntity(HttpEntity entity)方法传递
例如:mPost.setEntity(newStringEntity(strjosn));
5.发送请求(通过HttpClient的的执行()方法,该方法是一个重载方法,返回一个的HttpResponse对象)
例如:HttpResOnsemResponse= client.excute(mPost);
6.判断是否成功,根据状态码
。mResponse.getStatusLine()getStatusCode(); //获取状态码
//返回一个StatusLine对象[表示从HTTP服务器返回的状态行]); //获取此响应的状态行
//通过该对象的getStatusCode()获得状态码
if(mResponse.getStatusLine()。getStatusCode()== 200)// - >则访问成功
7.获取响应中的消息实体码,并将其转化为字符串/流(HttpEntity可以通过的Http消息发送或接收的实体)
例如:HttpEntity mEntity = mReponse.getEntity();
1.Stringinfo = EntityUtils.toString(mEntity);
2.InputStream is = mEntity.getContent();