🔥 Solon 3.0 新特性:HttpUtils 了解一下
Solon 3.0 引入一个叫 HttpUtils 小插件,这是一个简单的同步 HTTP 客户端,基于 URLConnection 适配(也支持切换为 OkHttp 适配)。使得编写 HTTP 客户端代码更加直观和易于阅读。
- 使用 URLConnection 适配时(大小为 40KB 左右)。默认
- 使用 OkHttp 适配时(大小为 3.1MB 左右)。当引入 okhttp 包时,自动切换为 okhttp 适配。
一、请求操作
- HEAD 请求并返回 status code
int code = HttpUtils.http("http://localhost:8080/hello").head();
- GET 请求并返回 body string
String body = HttpUtils.http("http://localhost:8080/hello").get();
- GET 请求并返回 body as bean
//for Bean Book book = HttpUtils.http("http://localhost:8080/book?bookId=1") .getAs(Book.class);
二、提交操作
PUT、PATCH、DELETE 数据提交,与 POST 相同。
- POST 请求并返回 body stirng (x-www-form-urlencoded)
//x-www-form-urlencoded String body = HttpUtils.http("http://localhost:8080/hello") .data("name","world") .post();
- POST 请求并返回 body stirng (form-data)
//form-data String body = HttpUtils.http("http://localhost:8080/hello") .data("name","world") .post(true); // useMultipart //form-data :: upload-file String body = HttpUtils.http("http://localhost:8080/hello") .data("name", new File("/data/demo.jpg")) .post(true); // useMultipart
- POST 请求并返回 body stirng (body-raw)
//body-json String body = HttpUtils.http("http://localhost:8080/hello") .bodyOfJson("{\"name\":\"world\"}") .post();
- POST 请求并返回 body as bean (body-raw)
//for Bean Result body = HttpUtils.http("http://localhost:8080/book") .bodyOfBean(book) //会通过 serializer 指定 contentType;默认为 json serializer .postAs(Result.class); //for Bean generic type Result<User> body = HttpUtils.http("http://localhost:8080/book") .bodyOfBean(book) .postAs(new Result<User>(){}.getClass()); //通过临时类构建泛型(或别的方式)
三、高级操作
获取完整的响应(用完要关闭)
try(HttpResponse resp = HttpUtils.http("http://localhost:8080/hello").data("name","world").exec("POST")) { int code = resp.code(); String head = resp.header("Demo-Header"); String body = resp.bodyAsString(); Books body = resp.bodyAsBean(Books.class); }
配置序列化器。默认为 json,比如改为 fury;或者自己定义。
FuryBytesSerializer serializer = new FuryBytesSerializer(); Result body = HttpUtils.http("http://localhost:8080/book") .serializer(serializer) .bodyOfBean(book) .postAs(Result.class);
四、总结
HttpUtils 的几个小优点:
- 简单的 API。主要就是简单!也很小巧。
- 支持自动序列化(使用了 solon serializer 接口规范;忆适配的序列化插件可直接用)
- 支持泛型

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache SeaTunnel 2.3.8版本正式发布!
Apache SeaTunnel 2.3.8 版本现已正式发布!此次版本后,用户将可以使用期待已久的Docker镜像,还可以体验Job级别日志功能,以及其他更新优化的功能。本文将详细介绍 Apache SeaTunnel 2.3.8 版本中的关键更新内容,欢迎更多开发者和用户参与到我们的开源社区中来。 2.3.8版本下载:https://seatunnel.apache.org/download/ Release Note:https://github.com/apache/seatunnel/releases/tag/2.3.8 重点更新 Job级别日志 此次更新中,我们对日志功能进行了优化,在之前的版本中,多个任务的日志都在一个文件中打印,当同时运行多个任务后,多个任务的日志交织在一起,不便于排查问题。 此次更新支持两种方式的配置,以实现更加高效的日志查询。 第一种是在每行日志中添加JobId,从而可以过滤查询出每个日志单独的日志; 第二种是根据JobId拆分文件,只需修改日志配置文件,就可以每一个JobId打印单独的日志文件。 新增Docker镜像 此次更新中,添加了官方的镜像支...
- 下一篇
开源日报 | 苹果质疑LLM无法进行逻辑推理;90后AI天才造卡车;Python 3.13性能测试;关于AI与芯片;谁该为IBM的没落负责?
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.10.15 今日要闻 Python 3.12 vs Python 3.13 – 性能测试 测试的第一部分使用一台配备 AMD Ryzen 9 7900 处理器、DDR5 内存和 M.2 PCIe Gen4 NVMe 驱动器的台式电脑。 结果显示,Python 3.13 在以下测试中比 Python 3.12 有最佳性能结果:async_tree_eager_io_tg(快 1.61 倍),async_tree_eager_io(快 1.54 倍),async_tree_io_tg(快 1.54 倍)。然而,你可能会注意到一些测试的性能下降,特别是在coverage(慢 1.36 倍),create_gc_cycles(慢 1.13 倍),regex_v8(慢 1.13 倍)。 Layui 发布 2.9.18 稳定版本 Layui 是一套遵循原生态开发模式的 Web UI 组件库,易上手,可以更简单快速地构建网页界面。 智谱开源新一代文生图模型 CogView3-Plus 智谱宣布开源文生图模型 CogView...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境