首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
okhttp3专题
OkHttp3源码分析[任务队列]
本文目录: 线程池基础反向代理模型OkHttp的任务调度 看过Wiki的都知道OkHttp拥有2种运行方式,一种是同步阻塞调用并直接返回的形式,另一种是通过内部线程池分发调度实现非阻塞的异步回调。本文主要分析第二种,即OkHttp在多并发网络下的分发调度过程。本文主要分析的是Dispatcher对象 1. 线程池基础 在初学android的时候,各位可能会用new Thread +
阅读更多...
OkHttp3源码分析[缓存策略]
OkHttp系列文章如下 OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列] 本文专门分析OkHttp的缓存策略,应该是okhttp分析中最简单的一篇了 HTTP缓存基础知识 在分析源码之前,我们先回顾一下http的缓存Header的含义 1. Exp
阅读更多...
OkHttp3源码分析[复用连接池]
OkHttp系列文章如下 OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列] 1. 概述 HTTP中的keepalive连接在网络性能优化中,对于延迟降低与速度提升的有非常重要的作用。 通常我们进行http连接时,首先进行tcp握手,然后传输数据,最后释
阅读更多...
okHttp3总结
目录 1 okhttp3总体流程2 Request、Response、Call基本概念2.1 OkHttp3总体流程解析2.2 流程源码 1 okhttp3总体流程 下图摘抄自网络 图1.1 okHttp3总体流程图 2 Request、Response、Call基本概念 Request request主要是对url,请求方法,请求参数,请求头等参数进
阅读更多...
okhttp3的详细介绍
这篇文章说下OkHttp的基本用法,是最新的3哦,如果你曾经在网上搜索OkHttp怎么使用发现有些类没有了可能是因为人家说的是2。首先说下OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。导入自己到入jar包,别漏了okio:okhttp-3.3.0.jarokio-1.8.0.jarmaven方式:<dependen
阅读更多...
OkHttp3基础使用
目录 前言一、依赖引入二、使用方式2.1 get请求2.1.1 同步请求2.1.2 异步请求2.1.3 取消请求2.1.4 结果处理 2.2 post请求2.2.1 同步post2.2.2 异步post2.2.3 post请求提交多种格式2.2.3.1 post请求提交String、文件2.2.3.2 post请求提交表单2.2.3.3 post请求提交复杂请求体 2.3 请求配置项2.4
阅读更多...
使用 OKhttp3 实现 智普AI ChatGLM HTTP 调用(SSE、异步、同步)
SSE 调用 SSE(Sever-Sent Event),就是浏览器向服务器发送一个HTTP请求,保持长连接,服务器不断单向地向浏览器推送“信息”(message),这么做是为了节约网络资源,不用一直发请求,建立新连接。 // 创建请求对象Request request = new Request.Builder().url(String.format(sseApi, seeId))//
阅读更多...
Okhttp3系列之(4) - HttpClient和OkHttp调用服务的区别
有关于HttpClient和OkHttp两种调用服务的方式区别,我们先到overstackflow上看看大牛们的讨论。 所以从使用、性能、超时配置方面进行比较 1. 使用 HttpClient和OkHttp一般用于调用其它服务,一般服务暴露出来的接口都为http,http常用请求类型就为GET、PUT、POST和DELETE,因此主要介绍这些请求类型的调用。 HttpClient使用介绍
阅读更多...
Okhttp3系列之(3) - SpringBoot下配置Okhttp3工具类
1.添加pom.xml依赖 <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.6.0</version></dependency> 2.封装工具类: import lombok.extern.slf4j.Slf4j;import okhttp3.*;i
阅读更多...
Okhttp3系列之(2) - SpringBoot Okhttp3配置工具类
1.添加pom.xml依赖 <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.6.0</version></dependency> 2.配置类 import java.security.KeyManagementException;import jav
阅读更多...
Okhttp3系列之(1) - 基本使用说明
1. 简介 HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求 当网络出现问题的时候OkHttp依然坚守自己的职责,它会自
阅读更多...
OkHttp3学习
OkHttp3学习之旅: 1、OkHttp3会从很多常见的连接问题中自动恢复, 如果你的服务器配置了多个IP地址,当第一个IP连接失败时,会自动尝试下一个IP OKHttp3使用前需在build.gradle里面配置以下内容: compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareu
阅读更多...
okhttp3实现post方式上传文件加参数
android开发中上传图片到服务端是再常见不过的功能。直奔主题:项目中用okhttp实现图片+文字参数上传。 我使用的okhttp版本: implementation 'com.squareup.okhttp3:okhttp:3.10.0' 实现代码: //初始化OkHttpClientOkHttpClient client = new OkHttpClient();//
阅读更多...
OkHttp3 发送Digest Auth摘要认证
注意OkHttp3 自带的Digest Auth 认证存在循环请求:部分请求如下所示: private static void digestAuth(ApiRequestVo apiRequestVo,Request.Builder requestBuilder,OkHttpClient.Builder okHttpClientBuilder){List<Map<String, Object>>
阅读更多...
使用OKHTTP3发送HTTPS请求时,抛出异常:Server chose TLSv1, but that protocol version is not enabled or not support
最近项目上需要使用OKHTTP3发送HTTPS请求,但发现向有些HTTPS服务器发送请求时,会抛出异常,类似: javax.net.ssl.SSLHandshakeException: Server chose TLSv1, but that protocol version is not enabled or not supported by the client. 在网上搜索这个错误,发现
阅读更多...
【Android开发】使用OkHttp3下载文件(支持直接下载 / 支持断点续传)
使用OkHttp3下载文件 1.直接下载版本: String filesDirPath = getFilesDir().getPath(); OkHttpClient okHttpClient = new OkHttpClient();Request request = new Request.Builder().get().url(URL).build();Ca
阅读更多...
Retrofit OkHttp3 打印日志 网络请求参数配置
1、用过Retrofit的朋友肯定知道使用Retrofit进行网络网络请求非常的方便简洁,但是要打印网络请求的日志还是要自己另想办法。昨天在网上找了一圈,发现要打印日志,大部分的帖子都是引入OkHttp3的日志库。 implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1' 2、通过OkHttp3 对日志和其他网络请求参数进行
阅读更多...
Kotlin OKHTTP3和拦截器的使用
注意:在android6.0以后网络请求还需如下配置: android:usesCleartextTraffic="true" <applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic
阅读更多...
Android之网络编程OkHttp3用法全解析
前言 上一篇介绍了OkHttp2.x的用法,这一篇文章我们来对照OkHttp2.x版本来看看,OkHttp3使用起来有那些变化。当然,看这篇文章前建议看一下前一篇文章Android网络编程(五)OkHttp2.x用法全解析。 1.使用前准备 Android Studio 配置gradle: compile 'com.squareup.okhttp3:okhttp:3.2.0'c
阅读更多...
retorfit2+okhttp3文件上传下载
创建一个网络请求接口ApiService,后续项目中所有网络请求均在该接口中定义: 常见网络请求格式和参数书写 1 GET方式请求——–无参请求 /**比如完整路径https://api.app.com/vi/my/home.json* baseUrl指的是https://api.app.com/vi/* 显而易见my/home.json是完整路径除baseUrl之外的部分*/@
阅读更多...
OkHttp3升级实践与之前2.0对比
Okhttp是一个高效的Http客户端,我们公司的app也采用Okhttp。 OKhttp在过年之前更新到了3.0了。3.0相对与之前的2.0变动比较大,不能直接升级版本后就行,现在讲讲我在将OkHttp升级到3.0过程中需要更改的地方,及okhttp3.0 与之前的2.0的对比。 1,包名改变 包名改了由之前的 com.squareup.http.* 改为 okhttp3.* 我们需要将
阅读更多...
okhttp3.logging.HttpLoggingInterceptor 引不进来包问题,kotlin看不了源码
如果你的Idea 没装过kotlin 可能会出现,包已经导进去了,你看不到源码,同时项目还爆红。 可能你找了半天maven 的问题一无所获,最后发现其他项目都没问题,就是这个okhttp3包的问题 然后去搜了okhttp3 这个包是怎么回事 ,据听说 okhttp3 这个项目到了4.X 之后 从java 语言升级成了kotlin ,之后尝试了装了下kotlin 插件 。然后重起Idea ,之后
阅读更多...
OkHttp3 中几个拦截器基本功能介绍
RetryAndFollowUpInterceptor 功能:实现重试、跟踪 实现原理: while(true) 死循环的实现。 检验返回的 Response ,如果没有异常(包括请求失败、重定向等),那么执行 return Response, return 会直接结束循环操作,将结果返回到下一个拦截器中进行处理。 检验返回的 Response ,如果出现异常情况,那么会根据 Respo
阅读更多...
Okhttp3 配置Https访问(使用PKCS12)证书
STEP 1 放置证书文件 将PKCS12证书和相关的trustStore文件放置在res/raw目录下 STEP2 创建自定义SSLFactory import android.content.Context;import java.io.IOException;import java.io.InputStream;import java.security.KeyStore;im
阅读更多...
Okhttp3 设计思想学习
前言 Okhttp的源码其实并不难,难的是对于Http的协议的熟悉程度.比如如何缓存.其实Okhttp参考了当前很多热门的浏览器源码而编写成的客户端.你可以看到很多线程数的设置都参考了主流浏览器.你可以把Okhttp视为一个无渲染界面的浏览器即可. Http缓存 想要看得懂Okhttp拦截器你首先必须对Http协议自带的缓存机制有一定的了解. 这里给出两个参考 1 HTTP 缓存(建议切换到
阅读更多...
Okhttp3中设置请求头的两种方式区别
代码: builder.addInterceptor(new Interceptor() {//添加请求头参数@Overridepublic Response intercept(Chain chain) throws IOException {Request original = chain.request();Request request = original.newBuilder().h
阅读更多...