java.lang.Object
org.miaixz.bus.http.bodys.RequestBody
- Direct Known Subclasses:
FormBody,MultipartBody,ProgressBody
HTTP 请求体
表示 HTTP 请求的内容,支持从字符串、字节数组、文件等创建请求体。 提供媒体类型、内容长度和写入功能,支持双工和一次性传输的特殊场景。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic RequestBodycreate(org.miaixz.bus.core.lang.MediaType mediaType, byte[] content) 从字节数组创建请求体static RequestBodycreate(org.miaixz.bus.core.lang.MediaType mediaType, byte[] content, int offset, int byteCount) 从字节数组部分创建请求体static RequestBody从文件创建请求体static RequestBody从字符串创建请求体static RequestBodycreate(org.miaixz.bus.core.lang.MediaType mediaType, org.miaixz.bus.core.io.ByteString content) 从 ByteString 创建请求体booleanisDuplex()检查是否为双工请求体boolean检查是否为一次性请求体longlength()获取内容长度abstract org.miaixz.bus.core.lang.MediaType获取媒体类型abstract voidwriteTo(org.miaixz.bus.core.io.sink.BufferSink sink) 将请求体内容写入输出流
-
Constructor Details
-
RequestBody
public RequestBody()
-
-
Method Details
-
create
从字符串创建请求体如果
mediaType非空且缺少字符集,则使用 UTF-8。- Parameters:
mediaType- 媒体类型(可能为 null)content- 内容字符串- Returns:
- 请求体实例
-
create
public static RequestBody create(org.miaixz.bus.core.lang.MediaType mediaType, org.miaixz.bus.core.io.ByteString content) 从 ByteString 创建请求体- Parameters:
mediaType- 媒体类型(可能为 null)content- 内容 ByteString- Returns:
- 请求体实例
-
create
从字节数组创建请求体- Parameters:
mediaType- 媒体类型(可能为 null)content- 内容字节数组- Returns:
- 请求体实例
- Throws:
NullPointerException- 如果 content 为 null
-
create
public static RequestBody create(org.miaixz.bus.core.lang.MediaType mediaType, byte[] content, int offset, int byteCount) 从字节数组部分创建请求体- Parameters:
mediaType- 媒体类型(可能为 null)content- 内容字节数组offset- 偏移量byteCount- 字节数- Returns:
- 请求体实例
- Throws:
NullPointerException- 如果 content 为 nullArrayIndexOutOfBoundsException- 如果 offset 或 byteCount 无效
-
create
从文件创建请求体- Parameters:
mediaType- 媒体类型(可能为 null)file- 文件- Returns:
- 请求体实例
- Throws:
NullPointerException- 如果 file 为 null
-
mediaType
public abstract org.miaixz.bus.core.lang.MediaType mediaType()获取媒体类型- Returns:
- 媒体类型(可能为 null)
-
length
获取内容长度返回写入
sink的字节数,如果未知则返回 -1。- Returns:
- 内容长度
- Throws:
IOException- 如果无法确定长度
-
writeTo
将请求体内容写入输出流- Parameters:
sink- 输出流- Throws:
IOException- 如果写入失败
-
isDuplex
public boolean isDuplex()检查是否为双工请求体双工请求体允许请求和响应数据交错传输,仅支持 HTTP/2。 默认返回 false,除非子类重写。
- Returns:
- true 如果是双工请求体
-
isOneShot
public boolean isOneShot()检查是否为一次性请求体一次性请求体只能传输一次,通常用于破坏性写入场景。 默认返回 false,除非子类重写。
- Returns:
- true 如果是一次性请求体
-