当前位置: 首页 > news >正文

重庆招聘网站建设数学很差能学计算机吗

重庆招聘网站建设,数学很差能学计算机吗,创意ppt模板大全,网站建设方面的文章1 OkHttp的工作原理 OkHttp3 的核心设计遵循以下原则: 请求与响应的分离:通过 Request 和 Response 对象解耦请求构建与结果处理。异步与同步支持:使用 Call 对象管理请求,可以同步或异步执行。高效连接复用:通过连接…

1 OkHttp的工作原理

OkHttp3 的核心设计遵循以下原则:

  1. 请求与响应的分离:通过 RequestResponse 对象解耦请求构建与结果处理。
  2. 异步与同步支持:使用 Call 对象管理请求,可以同步或异步执行。
  3. 高效连接复用:通过连接池管理 TCP 连接,支持 HTTP/2 多路复用,减少延迟。
  4. 可扩展的中间层:拦截器链路设计使得可以插入自定义逻辑。

工作流程图

  1. 构建 Request 对象
  2. 创建 Call 对象
  3. 调用同步或异步方法发送请求
  4. 通过拦截器链处理请求和响应
  5. 解析响应返回给调用者

2 核心类和接口解析

OkHttp3 的核心组件如下:

1. OkHttpClient

OkHttpClient 是 HTTP 客户端的核心类,用于管理请求和连接配置。
主要功能

  • 管理连接池
  • 分发请求
  • 配置超时、拦截器、DNS 等

代码示例

OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS).build();
** Request**

Request 是 HTTP 请求的抽象,包含 URL、方法、Header、Body 等信息。
代码示例

Request request = new Request.Builder().url("https://jsonplaceholder.typicode.com/posts").get() // 默认是 GET 请求.addHeader("User-Agent", "OkHttp Example").build();
3. Call

Call 是对一次请求的封装,可以执行同步或异步操作。
代码示例

Call call = client.newCall(request);
4. Response

Response 表示 HTTP 响应,包含状态码、Header、响应体等信息。
代码示例

Response response = call.execute(); // 同步调用
5. Interceptor

拦截器用于在请求发送和响应返回时插入自定义逻辑。
常见用途

  • 添加日志
  • 缓存控制
  • 动态修改请求

代码示例

client = new OkHttpClient.Builder().addInterceptor(chain -> {Request original = chain.request();Request modified = original.newBuilder().addHeader("Authorization", "Bearer token").build();return chain.proceed(modified);}).build();

3 同步与异步请求机制

OkHttp3 支持同步和异步两种请求方式:

1. 同步请求

同步请求在当前线程执行,调用 Call.execute() 方法,线程将被阻塞直到响应返回。
代码示例

try (Response response = client.newCall(request).execute()) {System.out.println(response.body().string());
} catch (IOException e) {e.printStackTrace();
}
** 异步请求**

异步请求在独立线程中执行,调用 Call.enqueue() 方法,结果通过回调处理。
代码示例

call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {e.printStackTrace();}@Overridepublic void onResponse(Call call, Response response) throws IOException {if (response.isSuccessful() && response.body() != null) {System.out.println(response.body().string());}}
});
同步与异步对比
特性同步调用异步调用
调用方式阻塞非阻塞
使用场景简单的单线程应用多线程或高并发场景
难度易于实现需实现回调逻辑

4 Dispatcher与线程调度

Dispatcher 的作用
  • 管理异步请求的队列和执行线程池
  • 限制最大并发请求数
  • 确保请求按序完成
默认配置与修改

默认情况下,OkHttp 的最大并发请求数为 64,总主机最大请求数为 5。可以通过 Dispatcher 自定义这些限制:

Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(128);
dispatcher.setMaxRequestsPerHost(10);OkHttpClient client = new OkHttpClient.Builder().dispatcher(dispatcher).build();
监控请求队列状态

Dispatcher 提供方法获取正在运行和等待的请求信息:

System.out.println("正在运行的请求数: " + dispatcher.runningCallsCount());
System.out.println("等待队列中的请求数: " + dispatcher.queuedCallsCount());
http://www.yayakq.cn/news/553517/

相关文章:

  • 南宁网站排名优化公司中国工商信息查询网
  • 2017做那个网站致富广州番禺各镇分布图
  • 网站的logo怎么换企业网站建设需求
  • 好口碑的网站制作安装价格免费给网站做seo
  • 万维网官方网站做视频网站资质
  • 山东网站建设运营网页源代码怎么打开
  • 网站建站的书籍WordPress关站插件
  • 婚纱网站建站系统破解
  • 网站没有关键词的弊端网站正在建设中 页面
  • 网站开发公司如何运营百度做的网站字体侵权
  • 校园平台网站建设感悟网络设计方案3000字
  • 劳力士官方二手表网站可信网站认证
  • 外贸网站建设 深圳过年做那些网站致富
  • 烟台网站制作策划遵义网站定制
  • 网站的论文怎么写优化是企业通过网站来做吗
  • 自己做的网站添加交费功能云商城是合法的吗
  • 中小型电子商务网站教师个人网站建设
  • 迅雷网站做爰视频wordpress公司主页
  • 长春网站建设索q479185700长宁区网站建设网
  • ppp项目建设交易网站深圳网站建设力荐上榜网络
  • 北京网站建设专业公司建e网全景图
  • 设计网站需要用到哪些技术深圳网站建站建设公司地址
  • 建设网站硬件做红酒的网站有哪些
  • 二级建造师报名入口官网南京网站排名优化费用
  • 建设网站网站名2023楼市回暖潮无望了
  • 汕头网站推广公司wordpress调取文章
  • 住房与城市建设部网站多元网站建设
  • 广州海珠网站设计网站建设定制开发推广
  • 湖南做网站 都来磐石网络淘宝指数官网的网址
  • 会用框架做网站能找到工作吗产品详情页怎么排版设计