<!-- generated-by: gsd-doc-writer -->
# HTTP Client、Socket 与数据库元数据

本页是外围能力接入入口。本轮核对接口和模块，不宣称已重新验证所有网络实现和数据库厂商。

## HTTP Client

共享请求/响应来自 `ineed-core-httpclient`；阻塞实现有 JDK 与 OkHttp，响应式使用独立 reactive 契约及 WebClient 实现。按应用运行时选择实现，不为了复用阻塞客户端在响应式链中阻塞等待。

[BlockingHttpClientExecutor](../../ineed-core-httpclient/src/main/java/com/ineed/core/httpclient/BlockingHttpClientExecutor.java)以 `execute(HttpClientRequest)` 返回 `HttpClientResponse`，声明 IO 与中断异常。请求配置从[HttpClientRequest](../../ineed-core-httpclient/src/main/java/com/ineed/core/httpclient/HttpClientRequest.java)核对。

接入时明确执行器、超时、响应体限制、错误处理、重试及幂等。重试外部写请求前先确认业务允许重复；不能把客户端超时直接解释为对端没有执行。

JDK 执行器的 `timeout` 覆盖等待响应与完整响应体接收；缺省或非正值使用 30 秒。接收时逐块检查 `maxResponseBytes`，超限抛出 `HttpResponseTooLargeException`；超时抛出 `HttpTimeoutException`，中断继续向调用方抛出 `InterruptedException`，同时取消交换与响应体订阅。回环 HTTP 验证见 [JdkBlockingHttpClientExecutorTest](../../ineed-core-modules/ineed-core-httpclient-jdk/src/test/java/com/ineed/core/httpclient/JdkBlockingHttpClientExecutorTest.java)，包含立即返回头但慢传正文、持续小块传输、大小边界与中断。

## Socket 接入

[SocketAccessExecutor](../../ineed-core-socketaccess/src/main/java/com/ineed/core/socketaccess/SocketAccessExecutor.java)声明 `supports(SocketAccessMode)` 和 `start(SocketAccessEndpoint, SocketAccessMessageHandler)`，启动返回 session。实际支持模式以所选执行器为准，不能因为枚举含某模式就认为每个实现都支持。

应用负责明确连接生命周期、消息处理、取消/关闭、重连与资源释放。参考[SocketAccessSession](../../ineed-core-socketaccess/src/main/java/com/ineed/core/socketaccess/SocketAccessSession.java)；响应式实现位于 reactive 聚合。

## 数据库元数据

[RdbMetadataUtil](../../ineed-rdb-metadata/src/main/java/com/ineed/rdb/metadata/RdbMetadataUtil.java)提供数据库、表、列等读取入口。DataSource 重载内部获取并关闭连接；传入 Connection 时按调用方连接生命周期管理。

读取 SQLException 通过 `RdbMetadataException.readFailed` 转换，不应将失败伪装成空表列表。元数据为空和读取失败要分别处理，具体支持的 schema/catalog 行为需要针对目标数据库验证。

## 验证与维护

客户端至少覆盖成功、超时、异常、取消/关闭和资源释放；元数据至少覆盖有效结构、无结果与连接/读取失败。新增适配器时更新[模块清单](../core/module-inventory.md)和[运行时矩阵](../concepts/runtime-matrix.md)，不要把“已加入 POM”标记为“全部能力已验证”。
