OkHttp 上手
OkHttp 上手
优点
- 快、节省带宽。
- 支持 HTTP/2 和 SPDY。
- HTTP/2 和 SPDY 允许对同一个主机的所有请求,使用一个 socket。
- 如果不支持 SPDY 的话,可以用连接池减少请求等待时间。
- GZIP 缩小传输大小。
- 缓存响应(response caching)彻底避免重复请求。
- 网络异常时重试。
- 如果服务有多个 ip ,如果第一个 ip 链接失败时 OkHttp 会尝试切换到其他 ip 。
failover - OkHttp 2.0 API 支持同步阻塞式调用(synchronous blocking calls)和异步回调(async calls with callbacks)。
- 不需要重写网络相关代码就可以试用 OkHttp 。
okhttp-urlconnection模块实现了常用的java.net.HttpURLConnection的API,okhttp-apache模块实现了 ApacheHttpClient的 API 。
Calls
- 支持重定向(302)等。
默认自动重定向。 - 如果 resposne 提出验证权限,OkHttp 会向
Authenticator询问权限。 - 请求分为同步和异步
- Synchronous:your thread blocks until the response is readable.
- Asynchronous:you enqueue the request on any thread, and get called back on another thread when the response is readable.
- 请求可以从任何线程取消。如果取消时正在“writing the request body”或“reading the response body”,会收到一个 IOExceptioin 。
Connections
- 没读懂。
Recipes(菜谱)
- 默认是不缓存的。想要缓存响应(responses)的话,需要制定缓存目录和缓存大小。并且需要有 ETag 之类的 header 配合。 Response Caching
interceptors

- Interceptors 分为
Application Interceptors和Network Interceptors。 - Interceptors 可以是一系列的。(Interceptors can be chained.)按顺序执行。
- 一般在 Interceptors 中做这些:
- 压缩
- 处理 http header
- 打印日志
- ...
- 如果自动重定向的话(302等),Network Interceptors 能拦截到两次,Application Intercepors 只能拦截到一次。因为重定向是在
OkHttp Core中执行的。
HTTPS
还没看!
OkHttp 上手的更多相关文章
- [Android] 转-RxJava+MVP+Retrofit+Dagger2+Okhttp大杂烩
原文url: http://blog.iliyun.net/2016/11/20/%E6%A1%86%E6%9E%B6%E5%B0%81%E8%A3%85/ 这几年来android的网络请求技术层出不 ...
- [ 转载 ] Okhttp的用法
Android中OkHttp的使用 LuckyXiang 简书作者 02018-01-18 19:04 打开App Android中OkHttp的使用 官方网站 | Javadoc 1 简介 OkHt ...
- Android网络框架OkHttp之get请求(源码初识)
概括 OkHttp现在很火呀.于是上个星期就一直在学习OkHttp框架,虽然说起来已经有点晚上手了,貌似是2013年就推出了.但是现在它版本更加稳定了呀.这不,说着说着,OkHttp3.3版本在这几天 ...
- OkHttp,一次无奈的使用
一次使用OKHTTP的心痛历程 最近由于一些不得已的原因,接触到了OKHttp,说起来也挺Dan疼的,之前同事将生产附件上传地址配置成了测试地址,还好数量不多,没有造成太大的影响,况且的是这位同事又离 ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...
- ECharts数据图表系统? 5分钟上手!
目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
随机推荐
- AngularJs练习Demo17 ngRoute
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 解析c语言背后的汇编代码
源码 很简单的c语言代码,作用是交换两个数: #include <stdio.h> void swap(int * a, int * b) { *a = *a + *b - (*b = * ...
- oracle数据库实验讲义-读书笔记(一)
1.激活锁定的用户alter user scott account unlock identified by tiger;2.使用内含脚本建立scott用户@%oracle_home%\rdbms\a ...
- ICP编程软件配置(烧写KEIL编译后的bin文件)
1. 安装NuMicro_ICP_Programming_Tool_1.29.6425软件 2. 打开软件后选择目标芯片后点击“连接”按钮 3. 添加程序 4. 点击设定按钮进行设定 5. 点击开始 ...
- centos卸载自带的apache(httpd)
.[root@localhost etc]# rpm -qa|grep httpd,查看与httpd相关软件包. httpd--.el5_2.CentOS. .然后删除httpd: [root@loc ...
- set{变量 = value;}get{return 变量;}
形如: public string _customValue { set { _customValue = value; } get { re ...
- Kafka笔记--监控系统KafkaOffsetMonitor
KafkaOffsetMonitor下载链接: http://download.csdn.net/detail/changong28/7930337github官方:https://github.co ...
- swift字典集合-备
Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成 ...
- [HDU] 2063 过山车(二分图最大匹配)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 女生为X集合,男生为Y集合,求二分图最大匹配数即可. #include<cstdio> ...
- OC .(点)与->(箭头)用法区别
这两天同学总是问OC里.和->的用法区别,当时回答的不是很好,周末查了一下,大概清楚了,在这里记录一笔. 先看这个例程 #import <Foundation/Foundation.h&g ...