首页 > 其他分享 >Solon 3.0 新特性:HttpUtils 了解一下

Solon 3.0 新特性:HttpUtils 了解一下

时间:2024-10-15 15:49:03浏览次数:10  
标签:body http HttpUtils 8080 book 3.0 Solon localhost

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 接口规范;已适配的序列化插件可直接用)
  • 支持泛型

标签:body,http,HttpUtils,8080,book,3.0,Solon,localhost
From: https://www.cnblogs.com/noear/p/18467662

相关文章

  • 基于VL812芯片的USB 3.0Hub设计
    前言(设计初衷)由于自己笔记本插接口不多,在网上购买了一款USB扩展坞,但平时要往返宿舍和工位,书包要放课本、笔记本等,不想再增加重量就动手搞一个放工位上方便。自己动手,丰衣足食(哈哈哈哈其实是自己不想包里放太多东西,同时也想练练画板),接下来就开始进入我们的主题。一、硬件方案本......
  • 恶魔轮盘赌3.0
    加入了:1.庄家可以使用道具 2.血量下限的完善3.当对自己射击,无论是否中枪,都继续自己的回合。当对对方射击无论是否命中,都结束回合importjava.util.Random;importjava.util.Scanner;publicclassSWE23070{privatestaticfinalintMAX_HEALTH=4;priva......
  • 硬件开发笔记(三十一):TPS54331电源设计(四):PCB布板12V转5V电路、12V转3.0V和12V转4V电路
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142757509长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • Solon-Boot 与 SpringBoot 的概念不同
    平常我们是拿Solon生态与SpringBoot生态作比较。而非Solon-Boot(仅是功能模块)与SpringBoot生态,但这两名字太容易让人误解了。Solon-BootSolon-Boot仅表示Solon的“服务端“启动模块组(相当于Solonserverbootstrap)。它是个“功能性”模块划分概念,跟Solon-Data,So......
  • Python 潮流周刊#72:Python 3.13.0 最终版已发布!(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了14篇文章,12个开源项目,4则音视频,全文2300字。以下是本期摘要:......
  • HEU KMS Activator v42.3.0
    不多做介绍了,懂得自然懂!123网盘:https://www.123pan.com/s/DMeA-sIuxA.html......
  • Solon 3.0 新特性:SqlUtilsqn
    Solon3.0引入了新的SqlUtils用于数据库基础操作,SqlUtils是对JDBC较为原始的封装,极为反朴归真。特性有:支持事务管理支持多数据源支持流式输出支持批量执行支持存储过程一、概述SqlUtils是一个轻量的数据库操作框架,简单灵活,易于阅读和维护,支持编写复杂的SQL。对于......
  • 【产品经理修炼之道】-数字人抢滩 Web 3.0
    编辑导语:品牌营销的方式逐渐走向多样化,数字技术的发展也为营销方式注入了更多活力,比如数字人、元宇宙等概念,便对ToB的营销格局产生了一定影响。那么,数字人营销当下进展到哪个阶段了?本文进行了一定解读,一起来看一下。从哪一个数字人开始,吸引了你的注意?是弹吉他的清华学生华智......
  • Solon 3.0 新特性:SqlUtils
    Solon3.0引入了新的SqlUtils用于数据库基础操作,SqlUtils是对JDBC较为原始的封装,采用了UtilsAPI的风格,极为反普归真。特性有:支持事务管理支持多数据源支持流式输出支持批量执行支持存储过程一、概述SqlUtils是一个轻量的数据库操作框架,采用UtilsAPI风格,简......
  • USB3.0 枚举过程
    USB3.0枚举是指主机和设备之间通过USB协议进行初始化和通信配置的过程。在USB3.0中,枚举过程的主要步骤包括电气连接建立、链路训练(LTSSM)、设备描述符读取等。以下是USB3.0枚举的详细过程:1设备连接与电源管理当USB设备插入USB3.0端口时,以下步骤会开始:供电:主机通过VBUS线为......