您的位置:首页 > 理论基础 > 计算机网络

HttpClient的一些用法

2015-10-09 00:21 567 查看
一、HttpClient简介

是一个开源的网络请求框架在Android中是内置

|--但是:Android5.0之后该框架已经不建议使用了

二、第三方jar包,导包了,下载地址:http://hc.apache.org/downloads.cgi

三、使用

1、创建客户端HttpClientclient=newDefaltHttpServlet();

2、创建请求HttpGet/HttpPost

3、使用客户端发送请求client.execute(请求)--返回一个reseponse对象

4、处理请求的结果

1、简单的代码,初级,中间有失效的方法就不要紧,异常没处理

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.FileOutputStream;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.methods.HttpGet;
importorg.apache.http.impl.client.DefaultHttpClient;
publicclassHttpClientDemo01{
publicstaticvoidmain(String[]args)throwsException{
HttpClientclient=newDefaultHttpClient();
HttpGetget=newHttpGet("https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/news/q=100/sign=643ba8b7d20735fa97f04ab9ae500f9f/8ad4b31c8701a18b48f518e3982f07082838fe04.jpg");
HttpResponseresponse=client.execute(get);
if(response.getStatusLine().getStatusCode()==200){
HttpEntityentity=response.getEntity();
BufferedInputStreambis=newBufferedInputStream(entity.getContent());
BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream("a6.jpg"));
byte[]b=newbyte[10240];
intlen=0;
while((len=bis.read(b))!=-1){
bos.write(b,0,len);
}
bos.flush();
bos.close();
bis.close();
}else{
System.out.println("臣妾做不到啊");
}
}
}


EntityUtils的使用:

importjava.io.BufferedOutputStream;
importjava.io.FileOutputStream;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.methods.HttpGet;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.util.EntityUtils;
publicclassHttpClientDemo02{
publicstaticvoidmain(String[]args)throwsException{
HttpClientclient=newDefaultHttpClient();
HttpGetget=newHttpGet("https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/news/q=100/sign=643ba8b7d20735fa97f04ab9ae500f9f/8ad4b31c8701a18b48f518e3982f07082838fe04.jpg");
HttpResponseresponce=client.execute(get);
if(responce.getStatusLine().getStatusCode()==200){
HttpEntityentity=responce.getEntity();
BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream("a7.jpg"));
//直接用工具转换城byte型数组
bos.write(EntityUtils.toByteArray(entity));
bos.close();
}else{
System.out.println("臣妾做不到啊");
}
}
}


提交表单和EntityUtils的使用:

importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.NameValuePair;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.util.EntityUtils;
/**
*Entity的工具的使用和表单的提交
*@authorMixm
*@date2015年10月8日下午9:15:51
*/
publicclassHttpClientDemo03{
publicstaticvoidmain(String[]args)throwsException{
HttpClientclient=newDefaultHttpClient();
HttpPostpost=newHttpPost("http://127.0.0.1:8080/day028_web/LoginServlet");
//普通表单
NameValuePairname=newBasicNameValuePair("userName","Mixm");
NameValuePairpsw=newBasicNameValuePair("passWord","0906");
List<NameValuePair>lists=newArrayList<NameValuePair>();
lists.add(name);
lists.add(psw);
HttpEntityentity=newUrlEncodedFormEntity(lists);
post.setEntity(entity);
HttpResponseresponse=client.execute(post);
if(response.getStatusLine().getStatusCode()==200){
HttpEntityhEntity=response.getEntity();
System.out.println(EntityUtils.toString(hEntity));
}else{
System.out.println("臣妾做不到啊");
}
}
}


HttpPost和HttpGet的区别
如果只是从服务器取数据,就使用HttpGet
如果要向服务器传数据,就使用HttpPost
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: