深入Android通过Apache HTTP访问HTTP资源
HttpClient接口
实现类:DefaultHttpClient这也是常用的一个用于实现HttpClient接口的子类,
HttpClietnt中定义的常用抽象方法
方法名称
|
描述
|
public abstract HttpResponse execute (HttpUriRequest request)
|
通过HttpUriRequest对象执行返回一个HttpResponse对象
|
public abstract HttpResponse execute (HttpUriRequest request, HttpContext context)
|
通过HttpUriRequest对象和HttpContext对象执行返回一个HttpResponse对象
|
HttpResponse接口
HttpResponse接口里定义了一系列的set、get方法
方法名称
|
描述
|
public abstract HttpEntity getEntity ()
|
得到一个HttpEntity对象
|
public abstract StatusLine getStatusLine ()
|
得到一个StatusLine(也就是HTTP协议中的状态行我们知道HTPP状态行由三部分组成:HTTP协议版本,服务器发回的响应状态代码,状态码的文本描述)接口的实例对象
|
public abstract Locale getLocale ()
|
得到Locale对象
|
….相应的set方法
|
|
StatusLine接口
StatusLine接口的常用方法。也可以通过其实现的子类BasicStatusLine类里查看
方法名称
|
描述
|
public abstract ProtocolVersion getProtocolVersion ()
|
得到一个ProtolVersion对象它是一个HTTP版本的封装类,在这个类里定义了一系列的方法我们可以通过它的getProtocol方法取得协议名称,getMinor得到HTPP协议的版本
|
public abstract String getReasonPhrase ()
|
状态码的文本描述
|
public abstract int getStatusCode ()
|
得到响应状态码
|
HttpEntity接口
HttpEntity是一个接口
方法名称
|
描述
|
public abstract InputStream getContent ()
|
得到一个输入流对象,我们可以用这个流来操作文件(例如保存文件到SD卡)
|
public abstract Header getContentType ()
|
得到Content-Type信息头
|
public abstract Header getContentEncoding ()
|
得到Content-Encoding信息头
|
我们可以通过EntityUtils类,它是一个final类,一个专门针对于处理HttpEntity的帮助类
常用方法
EntityUtils类
EntityUtils类的常用方法
方法名称
|
描述
|
public static String getContentCharSet (HttpEntity entity)
|
设置HttpEntity对象的ContentCharset
|
public static byte[] toByteArray (HttpEntity entity)
|
将HttpClient转换成一个字节数组
|
public static String toString (HttpEntity entity, String defaultCharset)
|
通过指定的编码方式取得HttpEntity里字符串内容
|
public static String toString (HttpEntity entity)
|
取得HttpEntity里字符串内容
|
NameValuePair
NameValuePair接口是一个简单的封闭的键值对,只提供了一个getName()和一个getValue方法。主要用到的实现类BasicNameVaulePair
HttpGet类
HttpGet它实现了HttpRequest、HttpUriRequest接口
构造方法
方法名称
|
描述
|
public HttpGet ()
|
无参数构造方法用以实例化对象
|
public HttpGet (URI uri)
|
通过URI对象构造HttpGet对象
|
public HttpGet (String uri)
|
通过指定的uri字符串地址构造实例化HttpGet对象
|
HttpPost类
同样它也实现了HttpRequest、HttpUriRequest接口等一系列接口
构造方法
方法名称
|
描述
|
public HttpPost ()
|
无参数构造方法用以实例化对象
|
public HttpPost (URI uri)
|
通过URI对象构造HttpPost对象
|
public HttpPost (String uri)
|
通过指定的uri字符串地址构造实例化HttpPost对象
|
清楚了上面的所有常用API后,下面我们能过Apache HTTP来访问HTTP资源
三步曲:
1. 创建HttpGet或者HttpPost对象,将要请求的URL对象构造方法传入HttpGet、HttpPost对象
2. 通过HttpClent接口的实现类DefaultClent.的excute(HttpUriRequest request)而我们已经知道HttpGet和HttpPost类都实现了HttpUriRequest接口,所以这里面,我们可以将第1步创建好的HttpGet或者HttpPost对象传入进来。来得到HttpResponse对象
3. 通过HttpResponse取到返回的一些信息,再做提取
实例图片:
帖上一部分源代码:
布局文件:
Java代码:
开发注意事项:
1.要想访问本地机器不能写成localhost或者127.0.0.1要写成10.0.2.2。这是因为Android模拟器(simulator)把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!若你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP: 10.0.2.2,10.0.2.2是模拟器设定的特定ip,是你电脑的别名,在模拟器上用10.0.2.2就能成功访问你的电脑本机。
2.记得加上网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
源代码下载:http://download.csdn.net/detail/jiahui524/3690598
分享到:
相关推荐
android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手.zip源码资源下载android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手.zip源码资源下载
Android进阶 Google Developers Android其他 重点推荐 License Copyright (c) 2017-2018, The Jeterlee authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
以下屏幕截图显示了项目导入过程的所有步骤: 进阶学习文献资料JavaScript API参考图表游乐场技术支援 执照Android的AnyChart集成示例包括两个部分: 集成示例的代码,该代码允许在Android上使用Javascript库(在本...
Android笔记本 前言 内容 1.数据结构与算法路线 2.计算机网络路线 3.计算机组成原理路线 3. Java和Kotlin路线 结语 联络我 微信 欢迎添加我的微信:xurui0801 博客 后续我逐步每篇博客同步更新到各个主流博客平台...
基于Android租房软件app.zip
待办事项说明-5.1-5.3测试Codelab的代码先进的Android Kotlin测试Codelab 5.1-5.3的代码介绍TO-DO Notes是一个应用程序,您可以在其中写下要完成的任务。 该应用程序将它们显示在列表中。 然后,您可以将它们标记为...
编程狂人是推酷网旗下的周刊,内容以开发技术,编程语言,框架等为主!周刊地址http://www.tuicool.com/mags/ 目录: 业界新闻 特斯拉升级充电软件和适配器:预防车辆着火 Tengine-2.0.0 正式发布 MongoDB 2.4.9 ...
1 实现诗词展示,显示,以及详细展示自定义 2 实现服务器端功能,可以推送一些数据下来 3 适合学生拿来作参考项目,学习
1 实现基于Android的宿舍管理系统 2 web部署说明: 1.安装mysql 3.新建数据库sushe,用户名和密码都是root,执行sql脚本 sushe.sql 安卓客户端修改接口地址 com.hjq.demo.http.server.ReleaseServer这个类的getHost...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
药店管理系统的后端服务器使用Java语言进行开发,使用了Spring框架进行Web开发,使用Mysql作为项目的数据库,同时也使用了Redis作为MySQL数据库的缓存,以及Apache的Tomcat作为项目开发运行服务器环境。...