用途:面向 Kotlin 的 HTTP 客户端,用于机器人与后端服务通信,覆盖 REST 请求、序列化、认证等场景。资料指定使用 Ktor 3.4.3 与 Kotlin 序列化插件 2.3.21,并提示不要降级到 3.1.x 或 3.0.x;若用户固定到 2.x,需明确警告 JsonFeature 已移除、HttpResponse.receive() 被 body<T>() 取代、Auth 插件更名为 Bearer。
主要能力:通过 build.gradle.kts 引入 ktor-client-core、ktor-client-cio、content-negotiation、kotlinx-json、logging、auth 及测试用 mock 依赖。客户端可配置 JSON 序列化、日志、超时与默认请求。支持 GET/POST/PUT/PATCH/DELETE,路径与查询参数、JSON 与表单请求体。认证支持 Bearer Token、带刷新的 Bearer、API Key 头与自定义拦截器;刷新时建议使用独立 tokenClient 并调用 markAsRefreshTokenRequest() 防止递归。错误处理可用 HttpResponseValidator 或自定义异常与 bodyOrThrow 扩展。重试支持全局与按请求配置,并提示 expectSuccess=true 与重试插件的冲突。还给出 API 服务模式、DTO、机器人集成与 Spring Boot 单例 Bean 集成示例。
使用方式:按资料中的 Gradle 依赖与 HttpClient(CIO) 配置安装插件,定义 @Serializable DTO,通过 client.get/post 等调用并以 body<T>() 解析。
限制:资料未提供价格、平台支持范围或性能数据;部分示例代码在原文末尾被截断。