HTTP POST 请求的请求体可以采用多种形式,具体取决于应用场景和服务器的实现需求。其中,键值对格式是一种常见的形式,但并不是唯一的。以下是几种常见的POST请求体形式:
1. 键值对格式
这种形式通常用于简单的表单提交,数据以 application/x-www-form-urlencoded
编码发送。
示例:
POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
name=John+Doe&email=john.doe@example.com
2. JSON 格式
这种形式常用于API请求,数据以 application/json
编码发送,更适合复杂的数据结构。
示例:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com"
}
3. 多部分表单数据(Multipart/form-data)
这种形式通常用于文件上传,数据以 multipart/form-data
编码发送。
示例:
POST /upload HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="example.png"
Content-Type: image/png
<文件内容>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
4. XML 格式
这种形式在某些系统中使用,数据以 application/xml
编码发送。
示例:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
<user>
<name>John Doe</name>
<email>john.doe@example.com</email>
</user>
5. 原始文本(Plain Text)
这种形式在一些特定场景下使用,数据以 text/plain
编码发送。
示例:
POST /submit-text HTTP/1.1
Host: example.com
Content-Type: text/plain
This is a raw text message.