OKHttp 重要的几个类

OkHttpClient常见方法和使用 OkHttpClient是一个开源的HTTP客户端,用于发送和接收HTTP请求。它是Square公司开发的,用于Android和Java应用程序的网络库。OkHttpClient内置了很多功能,包括连接池、请求和响应拦截器、TLS握手、请求重试等。它易于使用,具有简洁的API,同时还提供了丰富的配置选项,以适应不同的网络需求。使用OkHttpClient,开发人员可以轻松地创建和发送GET、POST、PUT、DELETE等类型的HTTP请求,并处理响应。 阅读详情

OkHttpClient.Builder
build —创建一个OKHttpClient实例

1、OkHttpClient本身不能设置参数,需要借助于其内部类Builder设置参数
(1)addInterceptor —- 添加拦截器 (在请求执行刚开始,还没有执行OKHttp核心代码之前拦截)
—-不用担心影响OKHttp请求的策略和请求速度;
—-从缓存从取数据也会执行addInterceptor;
—-允许多次重试,Chain.proceed()可以执行多次。(不要盲目重试,需要对错误加上自己的判断再重试)
(2)addNetwordInterceptor —添加网络拦截器(在连接网络之前拦截)
—-可以修改OKHttp框架自动添加一些属性(最好需要修改);
—–可以观察最终的完整请求参数(就是服务器接受到的参数);

拦截器在实际开发中的用处:1、对请求参数做统一加密处理;2、拦截不规则的URL;3、对请求或者返回的参数设置统一的编码格式;4、其他;

(3)authenticator —-身份验证
—-设置用于响应来自服务器的挑战的认证器;

(4)cache —-缓存
——设置响应缓存用于读取和写入缓存响应。

(5)proxy —-代理
—-设置即将连上http服务器代理的参数;
(6)readTimeout —设置读取超过时间的参数

Request
—–OKHttp用到的请求,Request.build
Request里面封装了请求的报文信息:请求的URL、请求的方法(如GET、POST)、请求头(如Content-Type、Cookie)以及其他。
如下图所示:

call
—–代表实际的http请求,它是连接Request和response的桥梁

(1)call既能同步获取数据也能异步获取数据

—-同步获取数据
OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
execute方法会阻塞当前的线程去获取数据,返回response对象

—-异步获取数据
OKHttpClient client = new OKHttpClient();
Request request = new Request.Builder()
.url(“http://publicobject.com/helloworld.txt“)
.build();
client.newCall.(request).enqueue(new Callback() {
@Override //异步获取数据失败
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}

  @Override //异步获取数据成功,将response传入改方法
  public void onResponse(Call call, Response response) throws IOException {
    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

    Headers responseHeaders = response.headers();
    for (int i = 0, size = responseHeaders.size(); i < size; i++) {
      System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
    }

    System.out.println(response.body().string());
  }
});

enqueue不会阻塞该线程,enqueue接收一个Callback对象;

Response
—–这个类封装了一些响应报文信息

(1)状态码,比如说(200、404等)
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。
100(继续)

2xx (成功)
表示成功处理了请求的状态代码。
200(成功)

3xx (重定向)
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
300 (多种选择)

4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。
400 (错误请求)

5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
500 (服务器内部错误)

(2)响应头(Content-Type、Server等)

(3)可选的响应体

execute和enqueue都能够获得Response对象;

如下为OKHttp的流程图这里写图片描述

xposed实现对okhttp拦截网络 一开始搜到有几个博客说用拦截器去实现,我也自己摸索下用拦截器 XC_MethodHook xc_BuildHook = new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(p 阅读详情

相关推荐

java的 OkHttp 库入门

通过以上的步骤,我们已经了解了如何使用 OkHttp 来执行基本的 HTTP 请求和响应操作。OkHttp 是一个非常强大的库,能够帮助你轻松管理 HTTP 通信,并确保你的应用始终保持高效。希望这篇俏皮可爱的指南对你有所帮助,如果你还有任何疑问,欢迎随时留言哦!😊注意:上面的代码示例是为了教学目的而编写的,实际使用时请根据你的项目环境进行适当的调整。别忘了检查你的 Java 版本,确保你使用的版本是最新的,以免遇到兼容性问题。此外,记得添加必要的异常处理代码,使你的应用程序更加健壮。

java专栏 1906

OkhttpClient的使用详解

** 概述及特性 ** HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttpClient是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接 连接池减少请求延时 透明的GZIP压缩减少响应数据的大小 缓存响应内容,避免一些完全重复的请求 当网络出现问题的时候OkHttp依...

workingman_li的博客 8万+

康耐视CogPMAlignTool模板匹配详解

康耐视CogPMAlignTool是一款基于边缘特征的模板匹配工具,适用于工业视觉检测。该工具提供PatMax、PatQuick、PatFlex等不同算法,分别对应高精度、快速匹配和柔性表面等应用场景。关键参数包括特征粒度(粗糙/精细)、边缘阈值、弹性范围等,支持旋转缩放匹配和极性忽略功能。工具操作流程包括图像采集、参数设置、模板训练和运行检测,通过调整查找概数、接收阈值等参数可优化识别效果。配套的卡尺工具(CogCaliperTool)通过一维投影和边缘筛选实现精准定位,适用于高精度尺寸测量场景。

2502_92473474的博客 1317

okhttp源码分析(四)-ConnectInterceptor过滤器

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

被代码淹没的小伙子的博客 682

私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!

其实在此很感谢能做出H5开奖系统的码农们,而我本人也喜欢分解此类的东西。 因为特殊原因,该东西本人就不做图片展示,以防他人商业化。 借用开奖摇奖代码首先分解首页index文件。代码如下:(后面持续在原有的作品上添加后台操作) 代码里写的//.....是我的注明代码的所需。 ​ &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;...

yugua3837的博客 5995

1104全部报表版本号-银监会报表

G4B_Ⅲ(a)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第一档)》G4B_Ⅲ(b)X1《与非中央交易对手的证券融资交易对手信用风险违约风险计算表(权重法)(第一档)》G4B_Ⅲ(a1)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第二档)》Ⅲ(a)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第二档)》Ⅲ(a1)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第一档)》

数字化老司机 6285

OkHttpClient请求方式详解,及常用OkHttpUtils配置工具类

OkHttpClient请求方式详解,及常用OkHttpUtils配置工具类

大数据开发、JAVA开发、人工智能AI 1万+

SystemVerilog学习总结

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需

博主毕竟还是人,肯定会有错误,各位看的时候发现错误提出来就好 1万+

Java中发送Http请求之OkHttpClient

Java中发送Http请求之OkHttpClient1 OkHttpClient的简介1 OkHttpClient说明2 OkHttpClient使用步骤3 OkHttpClient案例4 OkHttpClient常用工具类: Java中Http请求的方式很多, OkHttpClient因其独特的特性,非常适合在常见的场景中使用. 1 OkHttpClient的简介 1 OkHttpClient说明 OkHttpClient是一个高效的HTTP客户端,其特性包含: 支持HTTP/2,允许所有同一个主机

ABestRookie的博客 9680

自监督学习原理与代码实战案例讲解

自监督学习原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 自监督学习的起源与发展 1.1.1 监督学习的局限性

AI天才研究院 622

2026华为OD机考新系统真题 + 双机位C卷 + 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 45万+

android源码宇宙-Okhttp源码简单阅读

因为一些众所不周知的原因,近期我会发布大量的理论或者源码的文章。这些文章中有大部分是我前几年的笔记,或者之前没来得及记录成笔记的。比较适合对相关框架源码有一定了解的开发人员观看。否则可能会引起不适,手动狗头。 Okhttp的使用 源码 阅读大纲 同步调用网络请求流程 异步调用网络请求流程 Dispatcher类的代码逻辑 几个拦截器的逻辑 查看同步调用主流程 从newCall开始 调用RealCall.newRealCall创建Call RealCall.newRealCall 因为.

ymeddmn的博客 283

28-Halcon-- union_object_model_3d函数功能(用于3D模型融合)

Halcon算子union_object_model_3d是专业的3D模型融合工具,主要用于多视图拼接、部件组装和多源数据融合。该算子支持点云、网格和参数化模型输入,提供多种融合算法选择,包括基础点云拼接('points_cloud')、网格融合('mesh')和精确CAD布尔运算('cad')。工业应用涵盖逆向工程扫描拼接、汽车部件虚拟装配等场景,支持性能优化如空间分区和流式处理。算子还解决颜色属性融合、法向量保留等特殊需求,并提供拼接误差分析、拓扑验证等质量评估手段。最佳实践包含动态场景重建工作流和CA

weixin_45590420的博客 1054

Okhttp面试简答

目录 简略回答: 一、简单说一下okhttp。 二、Okhttp的核心类有哪些?简单讲一下 三、OkHttp方面的其他面试题 详细回答: 一、简单说一下okhttp。 二、Okhttp的核心类有哪些?简单讲一下 三、OkHttp方面的其他面试题 1、如何使用OkHttp进行异步网络请求,并根据请求结果刷新UI 2、OkHttp对于网络请求都有哪些优化,如何实现的 3、OkHt...

songzi1228的博客 1万+

24. 在QML界面中嵌入QWidget窗口

目前QT官方主推的界面开发方式是采用QML进行界面设计,但在QML未流行之前,很多的项目都是采用QWidget开发的,把之前的代码全部转换为QML代码显然工作量非常大,如果能将QWidget窗口嵌入到QML界面中,那么开发效率将提高很多,且QML无法实现的功能也能借助于QWidget框架进行实现。

山间点烟雨 5921

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

okhttp3与旧版本okhttp的区别分析

OkHttp的基本使用 HTTP GET OkHttpClient client = new OkHttpClient(); String doGet(String url) throws IOException {   Request request = new Request.Builder().url(url).build();   Response response = cl

robert的专栏 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OKHTTP3 初探

一、前言 一直以来都想找个时间看看OKHTTP的源码,最近抽空研究了下,以此记录下对OKHTTP源码的研究成果,当然,网上有很多关于写的很牛逼的博客。我就不和他们比了,谨以此记录一下我的心路历程。 说明:这篇博客是以OKHTTP3.3.1为研究对象,高版本的我也大概看了一下,改动还是有点大的,这里只讲3.3.1版本的。我这里对OKHTTP3.3.1的流程、框架进行梳理。 二、概述 OK...

u014452970的博客 1428

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OkHttp3源码详解(一Request类)

上次在哪篇博客看到这句话,我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造,我觉得很有道理 对于用到项目的某个开源项目我们不应该只停留在会用的阶段,废话不多说,直接开始okhttp源码的学习之路

刘建的博客 1万+

SpringBoot 配置 okhttp3

SpringBoot 配置 okhttp3

Jaemon 2万+

OKHttp与GSON获取JSON数据

这段时间看blog,到处都是OKHttp,简直就是高效、简洁的HTTP编程的代名词,火过Volley,今天就来讲讲在项目使用中比较常见的获取JSON数据的实例。对JSON数据的处理,在以前的android中貌似有点小麻烦,需要用到java的反射机制,对于新手来说是比较麻烦的,好在现在有google的GSON和阿里的fastjson可以选择,本文实例选择GSON,进行处理。         首先需

cjyusha的专栏 8346

OkHttp原理第五篇-Cache缓存类详解

OkHttp系列的第五篇文章,重点研究其缓存类,深入理解OkHttp的缓存机制

zjm807778317的博客 1370

【OKHTTP3】OKHTTP3使用GET和POST

一、参考资料 OKHTTP3 简单使用(三) POST方法 | JesseHu Blog

后端研发工程师Marion的博客 2354

OKhttp使用教程,okhttp post 提交JSON数据

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 昨天开始接手一个小任务,说让我处理一个接口的查询返回数据,最开始的时候,我发现自己很傻逼,还想着自己写一个关于提交的方式,就是自己把拿到的数据封装到head,body当中,做了一早上,我发现好像有点难,不知道怎么处理该问题,但是在最后的时候。我师父过来一看,来一句,okhttp啊 ,你在搞啥子哦。一瞬间,我发现自己好像没有在开发的这条路上,这么好的工具怎么不用呢。对不。下面我就...

阿杜的博客 1万+

Okhttp原理分析

OKHTTP原理流程图: 注意:Dispatcher的图有误解,懒得修改 OkHttpClient Okhttp算是执行调用请求Call工厂,这个工厂将会用来发送HTTP请求和读取他们的返回。强调:OKHTTP最好用单例模式,重复使用。因为每一个client都有自己的连接池connect pool和线程池thread pool。复用可以减少内存,减少延迟 Dispatcher 当OkHttpClient.newCall(request)执行execute/enenqueue时,实际上是将Call放入Dis

云梦九章~ 1万+

okhttp依赖_OkHttp必须弄清楚的几个原理性问题

前言okhttp是目前很火的网络请求框架,Android4.4开始HttpURLConnection的底层就是采用okhttp实现的,其Github地址:github.com/square/okht…来自官方说明:OkHttp is an HTTP client that’s efficient by default:HTTP/2 support allows all requests to th...

weixin_39851048的博客 468
上一篇: Could not resolve all dependencies for configuration ':app:retrolambdaConfi
下一篇: adb网络调试
Garnet-F
博客等级 码龄11年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值