转载

mica 2.0.3-GA 发布,优化 mica-http

mica(云母)

mica 由如梦技术内部的 lutool(撸秃)演变而来。lutool 诞生于 2017 年,受 jhipster 启发逐步形成一个微服务的核心集。

因 lutool 名称与功能不太符合,故在2019年开源时将其改名为 mica(云母),寓意为云服务的基石。

mica 2.x核心依赖

mica 基于 java 8,没有历史包袱,支持传统 Servlet 和 Reactive(webflux)。采用 mica-auto 自动生成 spring.factories 和 spring-devtools.properties 配置,仅依赖 Spring boot、Spring cloud 全家桶,无第三方依赖。市面上鲜有的微服务核心组件。

依赖 版本
Spring Boot 2.2.x

mica 2.0.3-GA 更新说明

  • :memo: 完善 mica 2.x 使用文档.
  • :sparkles: mica-http 微调日志,添加 system out log.
  • :sparkles: mica-http 添加 asString(Charset charset) 方法。
  • :sparkles: mica-http ResponseSpec 添加 json path 系列方法。
  • :sparkles: mica-http 优化 github #26 .
  • :sparkles: mica-ip2region 更新 ip2region.db 文件。
  • :sparkles: mica-core 优化 StringUtil,添加 startWith、endWith 方法.
  • :sparkles: mica-core 优化 DateUtil 优化 minus、plus months、years 提升5倍性能 gitee #IW2IM .
  • :sparkles: mica-redis 优化 MicaRedisCache 构造器 github #27 .
  • :arrow_up: 升级 spring boot 到 2.3.1.RELEASE。

mica-http简单、好用、高性能的http客户端

示例代码:

// 同步请求 url,方法支持 get、post、patch、put、delete
HttpRequest.get("https://www.baidu.com")
    .useConsoleLog(LogLevel.HEADERS) //使用控制台日志,同类的有 .useSlf4jLog(),日志级别为 BODY
    .addHeader("x-account-id", "mica001") // 添加 header
    .addCookie(new Cookie.Builder()  // 添加 cookie
        .name("sid")
        .value("mica_user_001")
        .build()
    )
    .query("q", "mica") //设置 url 参数,默认进行 url encode
    .queryEncoded("name", "encodedValue")
    .formBuilder()    // 表单构造器,同类 multipartFormBuilder 文件上传表单
    .add("id", 123123) // 表单参数
    .retryOn(responseSpec -> !responseSpec.isOk()) // 结合 spring retry 进行结果集断言
    .proxy(InetSocketAddress.createUnresolved("127.0.0.1", 8080)) // 设置代理
    .execute()                      // 发起请求
    .asJsonNode();                  // 结果集转换,注:如果网络异常等会直接抛出异常。
// 同类的方法有 asString、asBytes
// json 类响应:asJsonNode、asValue、asList、asMap、atJsonPath、,采用 jackson 处理
// file 文件:toFile

示例日志打印:

ConsoleLogger: --> GET https://www.baidu.com/?test=a&name=%E5%BC%B5%E4%B8%89&x=1&abd=MTIzJiQjJQ%3D%3D&abc=MTIzJiQjJQ%3D%3D
ConsoleLogger: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
ConsoleLogger: --> END GET
ConsoleLogger: <-- 200 OK https://www.baidu.com/?test=a&name=%E5%BC%B5%E4%B8%89&x=1&abd=MTIzJiQjJQ%3D%3D&abc=MTIzJiQjJQ%3D%3D (344ms)
ConsoleLogger: Bdpagetype: 1
ConsoleLogger: Bdqid: 0xf7759b3500101638
ConsoleLogger: Cache-Control: private
ConsoleLogger: Connection: keep-alive
ConsoleLogger: Content-Type: text/html;charset=utf-8
ConsoleLogger: Date: Mon, 29 Jun 2020 00:49:30 GMT
ConsoleLogger: Expires: Mon, 29 Jun 2020 00:49:30 GMT
ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
ConsoleLogger: Server: BWS/1.1
ConsoleLogger: Set-Cookie: BAIDUID=65575AF63CB9DA82E678269FFA4DF15D:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
ConsoleLogger: Set-Cookie: BIDUPSID=65575AF63CB9DA82E678269FFA4DF15D; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
ConsoleLogger: Set-Cookie: PSTM=1593391770; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
ConsoleLogger: Set-Cookie: BAIDUID=65575AF63CB9DA82BF723572E9FA07E1:FG=1; max-age=31536000; expires=Tue, 29-Jun-21 00:49:30 GMT; domain=.baidu.com; path=/; version=1; comment=bd
ConsoleLogger: Set-Cookie: BDSVRTM=15; path=/
ConsoleLogger: Set-Cookie: BD_HOME=1; path=/
ConsoleLogger: Set-Cookie: H_PS_PSSID=1431_31669_21083_32139_32046_31322_32108_22160; path=/; domain=.baidu.com
ConsoleLogger: Strict-Transport-Security: max-age=172800
ConsoleLogger: Traceid: 1593391770045661850617831328951579973176
ConsoleLogger: X-Ua-Compatible: IE=Edge,chrome=1
ConsoleLogger: Transfer-Encoding: chunked
ConsoleLogger: <-- END HTTP

文档

  • 文档地址: https://gitee.com/596392912/mica/blob/master/MODULE.md
  • 文档地址(语雀-可关注订阅): https://www.yuque.com/dreamlu
  • 示例项目: https://github.com/lets-mica/mica-example
原文  https://www.oschina.net/news/116788/mica-2-0-3-ga-released
正文到此结束
Loading...