1.Http有keepalive connection的机制,这个可以配置到请求报头中,可以在传输数据后仍然保持连接,当客户单再次需要获取数据的时候,直接使用刚刚空闲的连接而无需再次握手。
2.一般一个http请求报文由请求行,请求报头,空行,请求数据四部分组成。
请求行是由请求方法,url,http协议的版本组成。
请求报头,是由0个或多个请求报头组成,每个请求报头都包含着一个名字和一个值,用:分隔开。
请求数据,一般和请求数据相关的请求报头是Content-Type和Content-Length。
响应报文:
状态行:Http-version status-code reason-Phrase
响应报头:
空行:
响应正文:
对于http有复用机制,如果当前的线程池的使用的线程小于线程池数量,并且查询到当前要进行联网的id和已有的线程的realConnection能够对应上,那么就复用这个realConnection. 而realConnection是socket的包裹类。
3.retrofit
①常用的是post get请求
②有三个标记类注解
FormUrlEncoded :用于post表示的是表单请求,然后配合使用@Field注解,来形成一组键值对进行数据传递。
Multipart :用于post,,允许多个@Part
Streaming:响应的数据以流的方式返回,如果不使用它,默认就会将全部数据加载到内存,所以在加载大文件的时候要使用。
对retrofit的封装类
相应的GET POST 上传下载文件
如何进行使用:
demo:
https://github.com/yunzheyue/retrofitTest