用途:在 Java 11+ 项目中发起 HTTP 请求、构建 REST API 客户端、处理 JSON 响应、上传下载文件、消费 SSE 流、建立 WebSocket 连接,以及在单元测试中 Mock HTTP 调用。
主要能力:流式 API 构建 GET/POST/PUT/DELETE/PATCH 请求;通过 GSON 或 Jackson 模块做 JSON/对象映射;基于 CompletableFuture 的异步请求;带进度监控的文件上传;Unirest.sse(url) 消费 Server-Sent Events;Unirest.webSocket(url) 建立 WebSocket;响应缓存(可配置淘汰);代理配置(简单、系统属性、ProxySelector);默认 HTTP/2;自定义 executor 与 Java Authenticator;MockClient 支持静态与实例级 Mock。
使用方式:需 Java 11+,通过 Maven/Gradle BOM 引入 unirest-java-core,并显式声明一个 JSON 模块(unirest-modules-gson 或 unirest-modules-jackson),否则 asObject()、asJson() 与 JSON Patch 会在运行时失败。配置统一走 Unirest.config(),如 connectTimeout、requestTimeout、followRedirects、verifySsl、enableCookieManagement、retryAfter、defaultBaseUrl、proxy 等。请求示例:Unirest.get(url).asString();Unirest.post(url).body(obj).asJson()。响应支持 asEmpty/asString/asObject/asJson/asFile 与 GenericType。
适用场景:REST API 调用、文件传输、SSE/WebSocket 实时通信、HTTP 客户端测试、代理与缓存需求、从 3.x 迁移到 4.x。
限制:不支持按请求设置代理(仅全局);无独立 socketTimeout,改用 requestTimeout;不支持连接池并发调优;无自动重试(仅 retryAfter 处理 429/529);无 HostnameVerifier,改用 disableHostNameVerification() 系统属性;系统代理属性默认关闭,需显式 useSystemProperties(true);包名由 kong.unirest 改为 kong.unirest.core;配置变更需先 config().reset();spawnInstance 创建的实例需自行关闭。SSE 与 WebSocket 为 4.x 独有。