Android http(第二十五节课)

第二十五节课

http
.HTTP ( Hyper Text Transfer Protocol)
协议即超文本传输协议,它规定了浏览器和万维网服务器之间互相通信的规则。
从图中可以看出,使用手机客户端访问百度时,会发送一个HTTP请求。当服务器端接收到这个请求后,会做出响应并将百度页面返回给客户端
浏览器。这个请求和响应的过程实际上就是HTTP通信的过程。
在这里插入图片描述
·一次HTTP请求的过程
·建立连接-→发送请求-→处理请求-→返回数据-→发送请求2-……关闭连接
.HTTP请求的常用方式
GET
. POST
.HTTP请求的格式
请求行
请求头
·请求体
HTTP响应的格式
响应行(包含响应码:200404500302)。
响应头
·响应体
GET方式和POST方式提交数据

  1. HITP/1.1协议中共定义了八种方法来表明Request-URI指定的资源的不同操作方式。其中最常用的两种请求方式是GET和POST。
  2. GET方式与POST方式的区别
  3. GET方式以实体的方式得到由请求URL所指向的资源信息,向服务器提交
    的参数跟在请求URL后面。使用GET方式访问网络UAL的长度是有限制的。请求URL的长度耍小于1K。
  4. POST方式用来向目的服务器发出请求.要求它接收被附在请求后的实体。它向服务器我交的参数在请求后的实体中,POST方式对URL的长度是没有限制的
    使用HttpConnection
  5. URL:包含请求地址的类
    -tRil(path):包含请求路径的构造方法- openConnectionO:很到连接对象
    2.HttpURLConnection:代表与服务器连接的类
  • setRequestMethod(“GET/POST" ):设置请求方式
    setDoInput (true/ false):设置可以读取服务器瑞返回的数据
    setDo0utput(true/false):设置可以向服务器芒写入数据
    setConnectTimeout(time):设置连接超时时间,单位为ms
    setReadTimeout (time):设置读取服务器返回数据的时间-connecto :连接服务器
  • int getResponseCodeO:得到服务器返回的结果码
    Int getContentLengthO:得到服务器返回数据的长度(字节)getOutputStreamO:返回一个指向服务器端的数据输出流
    getInputStreamo:返画一个从服务器端返回的致据输入流
    disconnectO :断开连接

1.HttpURLConnection

<?xm1 version="1.0"" encoding="utf-8""?>
<network-security-config>
<domain-config>
<domain includesubdomains="true"">https : / /www.baidu.com/</domain>epin-set expiration="2020-08-01"">
pin digest="SHA-256"">7HIpactkIAq2Y49orFOoQKurwxmmSFzhBcoQvcRh33Y=</pin><!-- backup pin -->
pin digest=""SHA-256">fwzaOLRMKouZHRC8E1+4Pyu1dPDcf3uKgo/04cDM1oE=</pin></pin-set>
</domain-config>
</network-security-config>

Handler消息机制
·在使用手机下载软件时,通常都能在界面上看到一个下载的进度条,这个进度条用来表示当前下载的进度。但是Android4.0以后不能在UI线程访问网络,而子线程也不能更新UI界面。为了根据下载进度实时更新UI界面,就需要用到Handler消息机制来实现线程间的通信。

  • Handler机制主要包括四个关键对象,分别是:Message、Handler、
    MessageQueue、Looper。
  • Handler
  • Handler主要用于发送消息和处理消息。一般使用Handelr对象的
    sendMessage()方法发送消息,消息经过一系列处理后,最终会传递到Handler的handlerMessage()方法中。
    ·发送即时消息: sendMessage(Message msg)
    ·发送延时消息: sendMessageDelayed(Message msg, long time)·处理消息: handleMessage(Message msg)(回调方法)
    ·移除还未处理的消息: removeMessages[int what)
    MessageQueue
  • MessageQueue是消息队列的意思,它主要用来存放通过Handler发送的消息。通过Handler发送的消息会存在MessageQueue中等待处理。它是一个按Message的when排序的优先级队列。(when:代表着被处理的时间)
    Looper
  • Looper是每个线程中的MessageQueue的管家。调用Looper的loop()方法后,就会进入到一个无线循环中。然后一发现MessageQueue中存在一条消息,就会将它取出,并传递到Handler的HandlerMessage()方法中。
    ·使用Handler的一般步骤
    1.创建Handler成员变量对象,并重写其handleMessage()2.在分/主线程创建Message对象
    3.使用handler对象发送Message学
    4.在handleMessage()中处理消息
    Handler消息处理首先需要在线程创建一handler对象,然后在子线程中调用Hanlder的sendMessage()方法,接着这个消息会存放在UI线程的MessageQueue中,通过Looper对象取出MessageQueue中的消息,最后分发回Hanlder的handleMessage()方法中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值