OkHttp 上手

优点

  1. 快、节省带宽。
  2. 支持 HTTP/2 和 SPDY。
  3. HTTP/2 和 SPDY 允许对同一个主机的所有请求,使用一个 socket。
  4. 如果不支持 SPDY 的话,可以用连接池减少请求等待时间。
  5. GZIP 缩小传输大小。
  6. 缓存响应(response caching)彻底避免重复请求。
  7. 网络异常时重试。
  8. 如果服务有多个 ip ,如果第一个 ip 链接失败时 OkHttp 会尝试切换到其他 ip 。failover
  9. OkHttp 2.0 API 支持同步阻塞式调用(synchronous blocking calls)和异步回调(async calls with callbacks)。
  10. 不需要重写网络相关代码就可以试用 OkHttp 。okhttp-urlconnection 模块实现了常用的 java.net.HttpURLConnection 的API,okhttp-apache 模块实现了 Apache HttpClient 的 API 。

Calls

  1. 支持重定向(302)等。默认自动 重定向。
  2. 如果 resposne 提出验证权限,OkHttp 会向 Authenticator 询问权限。
  3. 请求分为同步和异步
  • 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.
  1. 请求可以从任何线程取消。如果取消时正在“writing the request body”或“reading the response body”,会收到一个 IOExceptioin 。

Connections

  1. 没读懂。

Recipes(菜谱)

  1. 默认是不缓存的。想要缓存响应(responses)的话,需要制定缓存目录和缓存大小。并且需要有 ETag 之类的 header 配合。 Response Caching

interceptors

  1. Interceptors 分为 Application InterceptorsNetwork Interceptors
  2. Interceptors 可以是一系列的。(Interceptors can be chained.)按顺序执行。
  3. 一般在 Interceptors 中做这些:
  • 压缩
  • 处理 http header
  • 打印日志
  • ...
  1. 如果自动重定向的话(302等),Network Interceptors 能拦截到两次,Application Intercepors 只能拦截到一次。因为重定向是在 OkHttp Core 中执行的。

HTTPS

还没看!

OkHttp 上手的更多相关文章

  1. [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的网络请求技术层出不 ...

  2. [ 转载 ] Okhttp的用法

    Android中OkHttp的使用 LuckyXiang 简书作者 02018-01-18 19:04 打开App Android中OkHttp的使用 官方网站 | Javadoc 1 简介 OkHt ...

  3. Android网络框架OkHttp之get请求(源码初识)

    概括 OkHttp现在很火呀.于是上个星期就一直在学习OkHttp框架,虽然说起来已经有点晚上手了,貌似是2013年就推出了.但是现在它版本更加稳定了呀.这不,说着说着,OkHttp3.3版本在这几天 ...

  4. OkHttp,一次无奈的使用

    一次使用OKHTTP的心痛历程 最近由于一些不得已的原因,接触到了OKHttp,说起来也挺Dan疼的,之前同事将生产附件上传地址配置成了测试地址,还好数量不多,没有造成太大的影响,况且的是这位同事又离 ...

  5. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  6. Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映

    前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...

  7. ECharts数据图表系统? 5分钟上手!

    目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...

  8. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  9. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

随机推荐

  1. 数位dp整理

    数位dp的思想就在于递归,记录当前的某一个唯一状态,依次递归下去,要注意唯一. 数位dp常设的状态有当前位置,上一数字,是否具有前导零,是否有限制. 1.CodeForces 55DBeautiful ...

  2. c笔试题(1)

    1.sizeof和strlen的区别 #include<stdio.h> #include<string.h> int main() { char a[10] = " ...

  3. poj1981 Circle and Points 单位圆覆盖问题

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Circle and Points Time Limit: 5000MS   Me ...

  4. HIVE快速入门

    (一)简单入门 1.创建一个表 create table if not exists ljh_emp( name string, salary float, gender string) commen ...

  5. jquery1.9学习笔记 之选择器(基本元素四)

    ID选择器("#id") 描述: 选择与给出ID属性匹配的单元标签. 对于ID选择器,jquery使用JS的函数document.getElementById(),当一个标签附加到 ...

  6. Mysql中natural join和inner join的区别

    假设有如下两个表TableA,TableB TableA TableB Column1 Column2 Column1 Column3 1 2 1 3 TableA的Column1列名和TableB的 ...

  7. DataTables自定义筛选器

    /* Custom filtering function which will search data in column four between two values */ $.fn.dataTa ...

  8. JavaWeb学习笔记--跳转方法小结

    服务端跳转:1. RequestDispatcher.forward()  public void doGet(HttpServletRequest request, HttpServletRespo ...

  9. Struts2学习笔记--Struts例子及开发流程

    参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...

  10. 新鲜出炉的awk代码

    echo "" | igawk -f main.awk # 需求:按照多种充值方式的多种金额类型进行累加统计 # 充值方式:移动卡 ,,,100元,联通卡20,,, 电信卡 ,,, ...