首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网络请求-Android篇(Okhttp和Retrofit)

一.OkHttp的介绍和基本用法   OkHttp是一个流行的开源Java和Android应用程序的HTTP客户端。...它由Square Inc.开发,提供了一种简单高效的方式来进行应用程序的HTTP请求。...要在Java或Android项目中使用OkHttp,您需要将OkHttp依赖项添加到您的build.gradle文件。然后,您可以创建一个OkHttpClient实例,并使用它来进行HTTP请求。...get方式又可以分为两种情况,分别是同步请求和异步请求;同步请求在进行请求的时候,当前线程会阻塞住,直到得到服务器的响应后,后面的代码才会执行;而异步请求不会阻塞当前线程,它采用了的方式,请求是在另一个线程执行的...,需要注意的是Android11开始,应用程序不能直接访问SD卡的根目录,Android应用程序只能在应用的私有目录或特定的公共目录存储文件 FileOutputStream

60430
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发神器:OkHttp框架源码解析

前言 HTTP是我们交换数据和媒体流的现代应用网络,有效利用HTTP可以使我们节省带宽和更快地加载数据,Square公司开源的OkHttp网络请求是有效率的HTTP客户端。...执行代码位于AsyncCall内部复写的execute()方法, 方法内定义一些Callback回调节点运行逻辑,包括用户主动取消执行(使用retryAndFollowUpInterceptor)以及执行请求成功或者失败时的回方法...Closing状态: WebSocket进入优雅的关闭状态,WebSocket继续处理入队的Message但拒绝新的Message入队 Closed状态: WebSocket已完成收发Message...对OkHttpClient以及Request封装成Call的形式,然后通过Call.enqueue()方法定义调用成功和失败时的Callback代码 public void connect(OkHttpClient...相关链接 【Android教程】基于Okhttp的高可用网络框架原理解析

58710

OkHttp科普篇

版本的对比 (Java版本为3.14.x) 3.流程梳理都在Java版本kotlin作为一个对比 设备要求 OkHttp works on Android 5.0+ (API level 21+)...要求在Android5.0以上的版本上且jdk版本为jdk8 使用流程 引入依赖 //新版库采用kotlin语言编写 implementation("com.squareup.okhttp3:okhttp...时设置的 NetworkInterceptors) CallServerInterceptor:请求拦截器(负责向服务器发送请求数据服务器读取响应数据) 核心 // Call the next interceptor...| 运行的异步请求 | 同步请求) 1.创建OkhttpClient OkHttpClient client = new OkHttpClient() 这部分Java和kotlin没有什么区别...()); } // 负责向服务器发送请求数据服务器读取响应数据 interceptors.add(new CallServerInterceptor(forWebSocket));

82010

网络请求框架OkHttp3全解系列(一):OkHttp的基本使用

所需 预备知识: HTTP协议详解 HTTP请求报文和响应报文 现在Android的网络请求框架,基本都是okhttp和Retrofit一统天下,而Retrofit又是以okhttp为基础,所以系统学习...okhttp是由square公司开发,Android公认最好用的网络请求框架,在接口封装上做的简单易用,GitHub地址:https://github.com/square/okhttp。...android:name="android.permission.READ_EXTERNAL_STORAGE" /> 二、使用方式 基本使用步骤如下 构建客户端对象OkHttpClient 构建请求...结果处理 请求回的两个方法是指 传输层 的失败和成功。...onFailure通常是connection连接失败或读写超时;onResponse是指,成功服务器获取到了结果,但是这个结果的响应码可能是404、500等,也可能就是200(response.code

23.9K51

「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!

它通过基于 REST 的 web 服务检索和上传 JSON (或其他结构化数据)变得相对容易。在使用,您可以配置用于数据序列化的转换器。...在 app module 下的 build.gradle 添加以下依赖: // OkHttp3 api 'com.squareup.okhttp3:okhttp:3.10.0' api 'com.squareup.okio...:okio:1.8.0' // Retrofit api 'com.squareup.retrofit2:retrofit:2.7.0' // Gson 服务器数据交互 api 'com.google.code.gson...由于使用了数据解析器,所以这一大块代码都省略了 还有很多优点,这里就不唠叨了,我们直接开始学习使用之路吧!...,大家应该还记得刚开始的时候我们导入了一个三方库: // Gson 服务器数据交互 api 'com.google.code.gson:gson:2.8.6' 我们和服务器的数据,都是以 JSON 的形式交互的

1K30

破解 Kotlin 协程(5) - 协程取消篇

/...] onFailure: java.io.IOException: Canceled 我们发现,取消的回被调用了,OkHttp 在收到我们的取消指令之后,也确实停止了网络请求,并且回调给我们一个...Continuation.resume 、 Continuation.resumeWithException 或者 Continuation.resumeWith 都会被忽略,因此 OkHttp 回我们收到...如果大家在 Android 当中使用 MainScope,那么同样因为前面说到的这个原因,导致 CompletableDeferred 没有办法被取消。...小结 这篇文章我们线程中断的概念切入,类比学习协程的取消,实际上大家就会发现这二者逻辑上和场景上有多么的相似。...接着我们将之前我们一直提到的回调转协程的例子进一步升级,支持取消,这样大家就可以轻易的将回调转变为协程的挂起调用了

1.7K50

Android笔记:集成原生微信授权获取用户信息登录

其实两年前做过这个功能,项目最近需要加上获取微信用户信息的需求,索性我就写成一篇文章,当做笔记 我在项目中用到的是点击一个按钮发起微信授权请求的需求,首先判断是否安装微信,如果安装微信则进行用户授权,授权成功之后通过微信提供的接口获取..."/> <uses-permission android...WXAPIFactory.createWXAPI(this, Constant.APP_ID, true); iwxapi.registerApp(Constant.APP_ID); 5、 判断是否安装微信,安装则发起授权请求...需要在回拿到code,然后再根据code去获取AccessToken,然后再根据AccessToken和OpenId去获取UserInfo。...Gson$Types.canonicalize(parameterized.getActualTypeArguments()[0]); } /** * 请求成功

72920

从零开始实现一个 mini-Retrofit 框架

演示一个使用OkHttp的项目Demo 为了更好的演示框架的实现过程,这里我先创建了一个简单的Demo项目 这个Demo项目中主要包含3个部分 Json数据对应JavaEntity类 项目中包装网络请求回的...一个Class对象表示响应的Json数据对应的Model,以便在内部使用Gson来解析,以及网络请求的异步回 NetCallback 我们不直接使用OkHttp提供的Callback 而是在内部简单的做了封装转换成项目自己的...NetCallback,因为对项目的开发人员来说,更希望的是能够直接在Callback的success回中直接得到响应的Json数据对应的JavaBean....: 调用成功,结果为BaseResponse(error=false, results={Android=[GankEntity(url=https://github.com/iqiyi/Neptune...3.4 实现ConverterFactory 解耦Json转换 在上面的例子,我们直接在框架Retrofit中使用了Gson库做Json转换,但作为一个框架来说 我们不希望直接强耦合一个第三方Json

2K10

源码分析OKHttp的执行过程

client.dispatcher().finished(this); } } 这个方法也不是很长,逻辑很简单: 同步锁检查该请求是否已经执行,如果没有则标记 executed=ture,否则抛出异常 调用了函数...callStart okhttp客户端调用 dispatcher 将执行请求对象 调用了 getResponseWithInterceptorChain 方法获取到响应数据 Response,这个方法很重要...我们发现调用 execute方法时就是将 Call对象加入到同步请求进行队列 runningSyncCalls,而调用 finished 方法则是将 Call请求队列移除 0x03 getResponseWithInterceptorChain...return response; } 可以看到,在 proceed方法,又构造了 RealInterceptorChain并且调用了 interceptor.intercept方法, 而这个方法又会调用...拦截器在 OKHttpClient中使是用责任链模式来实现的。 Okhttp 的关键的流程是通过拦截器责任链来完成的。

52510

精品连载丨安卓 App 逆向课程之三 frida 注入 Okhttp 抓包上篇

1.1.4 Android-Async-Http Android-Async-Http是基于HttpClient封装的异步网络请求处理库,现在已经不怎么用了。...一是因为HttpClient被Android弃用,二是因为框架作者停止维护,这个库知道即可。...它特别适合数据量小,通信频繁的网络操作。它基于HttpUrlConnection,目前也有一定的使用量。后续也会有关于这个框架的分析和实例讲解,这篇不会做相应介绍。...在真实场景,我们的抓包返回结果往往是JSON数据,因此替换访问URL为"http://www.kuaidi100.com/query?...1.3.1 OkhttpClient对象 在example类,首先创建了一个OkHttpClient对象 OkHttpClient client = new OkHttpClient(); OkhttpClient

4.3K30

RxHttp ,比Retrofit 更优雅的协程体验

"https://jitpack.io" } } } 注:RxHttp 2.6.0版本起,全面JCenter迁移至jitpack //使用kapt依赖rxhttp-compiler时必须...apply plugin: 'kotlin-kapt' android { //必须,java 8或更高 compileOptions { sourceCompatibility...(1,10) //截取9个数据 .take(5) //9个取前5个 .await() async 异步操作 如果我们由两个请求需要并行时...串行请求,只要其中一个请求出现异常,协程便会关闭(同时也会关闭请求),停止执行剩下的代码,接着走异常回 5.2、协程并行多个请求 请求并行,在现实开发,也是家常便饭,在一个Activity,我们往往需要拿到多种数据来展示给用户...,都使用到了APT,它能够在编译时检索注解信息,通过Javapoet框架生成Java类、方法等相关代码(想生成Kotlin相关代码,使用kotlinpoet),并因此在运行时做到零性能损耗。

2K20

Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架

后面出现Retrofit ,将OkHttp3 进行了封装,将请求API 接口化,将返回的数据结合GSON等各种转换器转换为直接面向开发的对象,大大的提升了我们的开发效率,为了解决Android UI/子线程...Android开发的重新定义,含糊不清的态度,既不丢弃Java又宣布kotlin 是首选语言。...其中ViewModel - LiveData 已经得到了广大开发者的认可,ViewModel 和LiveData 的结合,使得Android数据可控性变得更好,耦合度更低,简单来说是官方将观察者模式用于到了真个数据结构...= Resource(Status.LOADING, data, null) } } 2.3 使用Retrofit 创建API 接口、接口帮助类 将接口管理和请求放在不同的类文件,方便管理 API...这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~ 以上内容均放在了开源项目:我的github 已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新

2.1K30
领券