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、简单的代码,初级,中间有失效的方法就不要紧,异常没处理
EntityUtils的使用:
提交表单和EntityUtils的使用:
HttpPost和HttpGet的区别
如果只是从服务器取数据,就使用HttpGet
如果要向服务器传数据,就使用HttpPost
是一个开源的网络请求框架在Android中是内置
|--但是:Android5.0之后该框架已经不建议使用了
二、第三方jar包,导包了,下载地址:
三、使用
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
相关文章推荐
- HttpURLConnection的一些用法
- 读完《visual c++网络编程》 唐文超编著后的领悟
- 简述Windows XP与Windows 7系统常见漏洞
- 图解HTTP学习笔记——简单的HTTP协议
- open-vswitch: GRE隧道网络实验
- 直播时移技术与网络电视台的完美结合
- 网络唤醒-ether-wake
- 如何调用wps打开我下载的文本文件?
- VirtualBox 连接外部网络和内部网络教程
- Java之——简单的网络爬虫实现
- HTTP协议请求过程
- 用Node.js实现基于https的Restful风格webservice
- 浏览器的相关的http的响应码介绍
- TCP的三次握手和四次挥手
- Meta http-equiv属性详解(转)
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
- [CareerCup] 10.5 Web Crawler 网络爬虫
- 神经网络的反向传播BP算法
- TCP那些事
- java编写的基于TCP协议的多线程扫描端口程序