美文网首页
OkHttp的一些东西

OkHttp的一些东西

作者: Answer_yzpppp | 来源:发表于2017-03-26 20:52 被阅读99次

1.同步请求必须在子线程中执行,因为在Android4.0之后主线程中不允许网络请求,究其根本是因为同步网络请求会造成线程阻塞,主线程中阻塞5秒会ANR。

2.onResponse回调的参数是response,一般情况下,比如我们希望获得返回的字符串,可以通过response.body().string()获取;如果希望获得返回的二进制字节数组,则调用response.body().bytes();如果你想拿到返回的inputStream,则调用response.body().byteStream()

3.client.execute直接返回response,通过线程间通信的方式:1.handler.sendMessage2.runOnUiThread(runnable) 3.view.post(runnable) 在主线程中更新UI

4.同步请求一般用于当前线程的执行必须使用另一个线程的数据,比如A线程执行中必须使用B线程返回的数据,此时可以在A线程中使用client.execute(),A线程阻塞,等待B线程返回结果后继续执行。//好像有错,应该是同步请求只能用于子线程,会阻塞当前线程

5.应尽量使用异步请求,因为同步请求需要我们自己创建子线程。

6.Activity判断当前线程是否是主线程是在onResume()方法中。所以在onCreate中创建子线程并更新UI可能不会报错。

7.异步请求call.enqueue(newCallback())的两个回调方法onFailure和onResponse均是在子线程中执行的,支持大文件的下载。需要更新UI是仍需要使用handler等方法。

8.每个 response的body 只能被消费一次,多次消费会抛出异常,也就是说每个body只能被获取一次。body 必须被关闭,否则会发生资源泄漏。

相关文章

  • OkHttp的一些东西

    1.同步请求必须在子线程中执行,因为在Android4.0之后主线程中不允许网络请求,究其根本是因为同步网络请求会...

  • OkHttp详解

    OkHttp用法 同步和 异步请求 源码解析 Interceptor 是okHttp最核心的东西 网络请求 缓存,...

  • OkHttp3基础篇:Recipes (基本使用方法)

    我们已经写了一些 Recipes,演示了如何解决 OkHttp 的常见问题。 通过阅读本文了解 OkHttp 一些...

  • Android 的OkHttp 网络请求框架的封装学习

    以前写过一些东西,但是写写不看不用就容易忘掉,今天写写东西记下来,有空的时候多温习温习OkHttp 分为同步和异步...

  • OkHttp源码探究

    网络同步请求 Interceptor:是Okhttp最核心的一个东西,不要误以为它只负责拦截请求进行一些额外的处理...

  • OkHttp原理解析之请求流程

    本文基于OkHttp4.9.1 关于OkHttp这个东西大家都很熟悉了吧,那么对于它的请求流程你了解吗,你还在停留...

  • OkHttp3几个简单的例子和在子线程更新UI线程的方法

    okHttp用于android的http请求。据说很厉害,我们来一起尝尝鲜。但是使用okHttp也会有一些小坑,后...

  • 资源

    okHttp的使用: OkHttp使用完全教程OkHttp官方教程解析-彻底入门OkHttp使用 okHttp的源...

  • Android面试Android进阶(十八)-Retrofit相

    Retrofit是基于OkHttp封装的一个网络请求框架,底层网络请求通信由OkHttp实现。上篇文章讲了一些Ok...

  • Android | okhttp细枝篇

    嗨,我是哈利迪~《看完不忘系列》之okhttp(树干篇)一文对okhttp的请求流程做了初步介绍,本文将对他的一些...

网友评论

      本文标题:OkHttp的一些东西

      本文链接:https://www.haomeiwen.com/subject/ybwkottx.html