HttpClient的使用
2016-03-16 18:29
483 查看
使用Http协议访问网络的方式其一是HttpURLConnection,第二则是HttpClient(还有其它方式,只是目前还没有学习到,以后继续补充)。HttpClient使用的步骤如下:(千万记得网络请求要在线程中发出,或者使用AsyncTask工具)1.创建HttpClient实例,HttpClient接口不能被实例化,所以创建一个DefaultHttpClent实例
HttpClient httpClient = new DefaultHttpClient();2.如果发起GET请求,则创建HttpGet对象,并且调用httpClient的execute方法传入HttpGet对象,并且返回服务器信息HttpResponse对象
HttpGet httpGet = new HttpGet("http://www.baidu.com");
HttpResponse httpResponse = httpClient.execute(httpGet);3.取出服务器信息的状态吗,如果等于200则说明响应成功
if(httpResponse.getstatusLine.getStatusCode == 200){
}4.在判断体内部调用getEntity()获得一个HttpEntity实例,并且调用EntityUtils.toString()静态方法把该实例转化为字符串对象
if(httpResponse.getstatusLine.getStatusCode == 200){
HttpEntity entity = httpResponse.getEntity();
String response = EntityUtils.toString(entity, "utf-8");//服务器返回的数据带有中文,所以要把字符集指定为utf-8
}下面贴出完整代码:
private void sendRequestWithHttpClient(){new Thread(new Runnable(){@Overridepublic void run(){try{HttpClient httpClient = new DefaultHttpClient();//指定访问的服务器是本机HttpGet httpGet = new HttpGet("http://10.0.2.2/get_data.json");HttpResponse httpResponse = httpClient.execute(httpGet);if(httpResponse.getStatusLine().getStatusCode() == 200){//请求和响应都成功了HttpEntity httpEntity = httpResponse.getEntity();String response = EntityUtils.toString(httpEntity, "utf-8");parseJSONWithGSON(response);}}catch (Exception e){e.printStackTrace();}}}).start();}
相关文章推荐
- MyTCP<三>
- Drainage Ditches--hdu1532(网络流 模板)
- CDN的cache节点(http)结构及工作原理总结(图自画)
- ifconfig命令--查看、配置、启用或禁用网络接口的工具
- 网络请求的synchttpclient的优点
- iOS9网络请求失败
- [caffe]深度学习之MSRA图像分类模型Deep Residual Network(深度残差网络)解读
- linux tcp网站
- TCP之心跳包实现思路
- Android http连接方式选择,从Volley窥探Google处理方式
- TCP/IP 协议简单分析
- MyTCP<二>
- 网络游戏专业术语中英文对照版
- Java简单的网络爬虫实现
- python网络编程
- [网络流24题]code vs 1914 运输问题
- JAVA利用HttpClient进行POST和GET请求(HTTPS)
- jarsigner: 无法对 jar 进行签名: 时间戳颁发机构没有响应。 如果要从防火墙后面连接, 则可能需要指定 HTTP 代理。请为 jarsigner 提供以下选项
- 使用“带外数据”实现TCP心跳包
- Tomcat 启用 HTTPS