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

12_OkHttp初体验

12_OkHttp初体验

在 Java 开发中,网络请求是非常常见的需求。除了 Spring 自带的 RestTemplateWebClient,一个非常轻量级、性能强劲的 HTTP 客户端库就是 OkHttp
今天就来记录一下我在 Spring Boot 项目中集成并使用 OkHttp 的初体验。


📦 一、OkHttp 配置类

首先在 Spring Boot 中,我们通常会将 OkHttpClient 配置成一个 Bean,方便全局注入使用。

/*** @Author: sqnugy* @Date: 2025/7/29 20:13* @Version: v1.0.0* @Description: OkHttp 客户端配置类**/
@Configuration
public class OkHttpConfig {@Beanpublic OkHttpClient okHttpClient(@Value("${okhttp.connect-timeout}") int connectTimeout,@Value("${okhttp.read-timeout}") int readTimeout,@Value("${okhttp.write-timeout}") int writeTimeout,@Value("${okhttp.max-idle-connections}") int maxIdleConnections,@Value("${okhttp.keep-alive-duration}") int keepAliveDuration) {return new OkHttpClient.Builder().connectTimeout(connectTimeout, TimeUnit.MILLISECONDS) // 建立连接超时.readTimeout(readTimeout, TimeUnit.MILLISECONDS)       // 读取数据超时.writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)     // 写入数据超时.connectionPool(new ConnectionPool(maxIdleConnections, keepAliveDuration, TimeUnit.MINUTES)) // 连接池配置.build();}
}

这样一来,OkHttpClient 就能作为 Spring Bean 被注入使用啦 🎉


⚙️ 二、配置文件

为了灵活性,我们把超时时间、连接池参数等写到 application.yml 中:

okhttp: # OkHttp 客户端配置connect-timeout: 5000    # 建立连接的最大等待时间(毫秒)read-timeout: 30000      # 读取数据的最大等待时间(毫秒)write-timeout: 15000     # 写入数据的最大等待时间(毫秒)max-idle-connections: 200 # 连接池中保持的最大空闲连接数keep-alive-duration: 5   # 空闲连接在连接池中的存活时间(分钟)

这样后续如果需要调整参数,就不需要改代码了,非常方便。


🔍 三、OkHttp 使用示例

以一个 同步 GET 请求为例,我们来抓取指定 URL 的 HTML 内容。

/*** 同步获取指定 URL 的 HTML 内容* @param url 请求地址* @return 页面 HTML 字符串*/
private String syncFetchHtmlContent(String url) {// 构建 HTTP GET 请求Request request = new Request.Builder().url(url)  .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36") // 模拟浏览器 UA.header("Accept", "text/html")  // 接受 HTML 格式.build();try (Response response = okHttpClient.newCall(request).execute()) {// 判断响应是否成功if (!response.isSuccessful() || response.body() == null) {return "";}// 返回响应内容return response.body().string();} catch (IOException e) {e.printStackTrace();return "";}
}

📌 四、几点感受

  • 轻量级:相比 RestTemplate,OkHttp 使用起来更简洁,API 风格清晰。
  • 高性能:支持连接池,能复用 TCP 连接,减少资源消耗。
  • 灵活性高:可以方便地添加拦截器(例如日志、鉴权),在底层做更多定制化操作。
  • 同步 & 异步支持:既支持阻塞调用,也支持回调式异步请求。

📝 总结

第一次上手 OkHttp 给我的感受是:简单、好用、性能强
如果你的项目里有需要进行大量 HTTP 调用的场景,完全可以考虑在 Spring Boot 里集成 OkHttp。后续我也会继续探索 拦截器异步请求上传下载文件等功能。

http://www.dtcms.com/a/399491.html

相关文章:

  • 硅基计划5.0 MySQL 壹 初识MySQL
  • 网站规划建设方案免费微信点餐小程序
  • Ford-Fulkerson最大流算法数学原理详解
  • 湛江做寄生虫网站wordpress修改端口
  • 从技术角度分析 “诺亚参数” 生成式设计工具
  • 做pc端网站代理商广告传媒网站模板
  • All In AI之三:一文构建Python核心语法体系
  • 湖州公司做网站南山龙岗最新通告
  • 南通建设招聘信息网站石家庄网站建设服务
  • 网站配资公司网站网站推荐免费的
  • asp旅游网站模板下载阜新本地网站建设平台
  • DBA 系统学习计划(从入门到进阶)
  • 列出网站目录wordpress正文底部版权声明
  • 网站改版建设 有哪些内容什么叫关键词
  • 郴州网站建设设计制作西安开发网站建设
  • 深度解析:vLLM PD分离KV cache传递机制全解析
  • 六维力传感器和关节扭矩传感器:机器人精准控制的“内外双核”
  • 什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
  • 如何制作大气网站公司变更流程
  • docker概念、安装与基本使用
  • 文件操作的相关知识
  • 网站建设不足之处网站seo案例
  • 卖网站赚钱吗做国外网站翻译中国小说赚钱
  • python爬虫--requests模块
  • kernel4.19 rk3568 buildroot perf 编译踩坑记录
  • Springboot实现WebSocket通信(一)
  • wordpress站点标题360免费自助建站
  • 网站开发前端设计二维码创意设计
  • 太原网站建设随州steam交易链接怎么改
  • 网站风格设计怎么写织梦搞笑图片网站源码