首页 > 极客资料 博客日记
Solon 3.0 新特性:HttpUtils 了解一下
2024-10-15 16:00:03极客资料围观15次
文章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 接口规范;已适配的序列化插件可直接用)
- 支持泛型
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”