1、概述
Android完全支持JDK本身的TCP UDP网络通信的API,也就是我们在javase阶段讲解的网络编程
Android也支持基于HTTP协议的URLConnection,并内置Apache HttpClient API来简化HTTP操作2、http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)(1)在TCP/ip协议栈中的位置
通常承载与tcp协议之上,有事也承载与tls或者ssl协议层之上,这个时候,就成了我们常说的https
http默认端口是80 https默认的端口是443(2) http的请求响应
只有请求了,才会返回响应,服务端不会在没有请求的时候返回响应,这样就限制了使用http协议,无法实现在客户端没有发起请求的时候,服务端将消息推送给客户端,http协议是一个无状态的协议,同一个客户端的这次请求和上次的请求是没有对应的关系-
3、检查网络连接状态
- 工作流程
一次HTTP操作称为一个事物,其工作过程分为四步:- (1)首先客户端与服务器需要建立连接,只要单击某个超链接,http的工作开始
- (2)建立连接后,客户端发送一个请求给服务器,请求方式的格式为,统一资源标识符(URL)、协议版本号、后边是MIME信息包括请求修饰符,客户端信息和可能的内容
- (3)服务器接收到请求和,给予相应的响应,其格式为一个状态行,包括信息的协议版本号,一个成功或者错误的代码,后面是MIME信息包括服务器信息,实体信息和可能的内容
- (4)客户端接收服务器所返回的信息通过游览器显示在用户的显示屏上,然后客户端与服务器断开连接如果在以上的过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出,对于用户来说,这些过程是有HTTP自己完成的,用户只要点击鼠标,等待信息的显示就可以了。
- 工作流程
请求包的实例
HTTP请求包,(GET?POST等待请求方法)由三个部分构成:方法-URL-协议版本、请求头、请求正文.下面十一个HTTP协议请求包(GET)的例子
- 1、GET/index.jsp HTTP/1.1
- 2、Accept-Language:zh-cn
- 3、Connection:Keep-Alive
- 4、Host;192.168.0.106
- 5、Content-Length:37
- 6、userName=wuyinel&password=123456
HTTP应答包实例
和HTTP请求包相似,由三个部分构成,分别是:协议-状态代码-描述,应答头,应答正文
常用的http状态码:
200 OK ;客户端请求成功
400 Bad Request; 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized : 请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden: 请求未经授权名,拒绝提供服务
404 Not Found ;请求的资源不存在
500 Internal Server Error :服务器发生不可预期的错误
503 Server Unavailable : 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
100---客户必须继续发出请求
101---客户要求服务器根据请求转换HTTP协议版本
2.3.2.2 2** --- 操作成功收到、分析、接受
200---交易成功
201---提示知道新文件的URL
202---接受和处理,但是未处理完成
203---返回信息不确定或者不完整
204---请求收到,但是返回信息为空
205---服务器完成了请求,用户带来必须复位当前已经游览过的文件
206---服务器已经完成了部分用户的GET请求
2.3.2.3 3**---:完成此请求必须进一步处理
300---请求的资源可以多出得到
301---删除请求数据
302---在其他地址发现了请求数据
303---建议客户访问其他UIL或者访问方式
304---客户端已经执行了GER,但是文件未变化
305---请求的资源必须从服务器指定的地址得到
306---前一版本HTTP中使用的代码,现行版本中不在使用
307---申明请求的资源临时性删除
2.3.2.4 4**---:请求包含一个错误语法或者不能完成
400---错误请求,如语法错误
401---未授权
HTTP 401.1- 未授权:登录失败
HTTP 401.2 - 未授权:服务器配置问题导致登录失败
HTTP 401.3 - ACL禁止范文资源
HTTP 401.4