HTTP协议支持多种数据格式以及传输数据方式
一、数据格式
1. JSON(JavaScript Object Notation):
一种轻量级的数据交换格式,易于阅读和编写,常用于Web开发中的数据交互。示例:
{
"name": "jack",
"age": 30
}
2. XML(eXtensible Markup Language):
一种标记语言,用于传输和存储数据,具有良好的扩展性,但相对于JSON而言语法较为繁琐。示例:
<user>
<name>jack</name>
<age>30</age>
</user>
3. Form-URLencoded:
使用 application/x-www-form-urlencoded
格式,通常用于HTML表单数据的编码格式,通过将字段和值进行URL编码的方式进行数据传输。示例:?name=John&age=30
4. Multipart form-data:
用于在HTTP请求中传输二进制数据或文件,常用于文件上传的场景。它允许同时传输文本数据和二进制数据,适合复杂的数据交互需求。
在API测试工具中:
- None:表示HTTP请求中没有附带任何特定的数据格式,通常用于GET请求或者一些不需要在请求体中携带数据的请求。
- Form-Data:表示使用"multipart/form-data"格式,在HTTP请求中用于上传文件或二进制数据。这种格式通常用于表单提交和文件上传。
- x-www-form-urlencoded:表示使用"x-www-form-urlencoded"格式,在HTTP请求中用于将表单数据编码为URL参数的形式进行传输。这种格式通常用于POST请求中的表单数据提交。
- Raw:表示直接在HTTP请求的请求体中以原始的数据格式进行数据传输,例如JSON、XML等。开发人员可以根据具体的需求自由选择要发送的数据格式。
- Binary:表示以二进制形式传输数据,通常用于传输图片、音频、视频等二进制文件数据。
二、数据传输方式
1. 查询参数(Query Parameters):
附加在URL路径之后,以问号(?)开头,多个参数之间使用“&”符号分隔.
例如:https://www.baidu.com/users?name=John&age=30。
使用x-www-form-urlencoded 的数据格式也会将数据拼接到URL。
2. 请求头(Request Headers):
包含在HTTP请求头中的键值对,用于传递额外的信息,例如认证信息、内容类型等。
3. 请求体(Request Body):
通常用于POST、PUT等请求方法中,包含要发送的数据,可以是JSON、XML、表单数据等格式。
这些HTTP请求参数可以通过不同的方式传递和处理,对于不同的HTTP请求类型和目标服务端,参数的使用和格式可能会有所不同。
@RequesetParam 和 @RequestBody
这个两个注解是Spring框架中用于处理HTTP请求参数的注解。
@RequestParam:
这个注解用于从URL的查询字字符串或表单数据中获取请求参数值。它通常用于GET请求或使用application/x-www-form-urlencoded
格式提交的POST请求,可以指定参数名称、是否必需以及默认值等参数属性
使用实例:
@GetMapping("/book")
public ResponseEntity<List<Book>> getUsers(@RequestParam("page") int page, @RequestParam("size") int size) {
// ...
}
@RequestBody
注解用于从请求体中获取请求参数值,主要用于POST、PUT等请求方法,并且通常与application/json
或appliaction/xml
等格式一起使用。它可以将请求体中的数据反系列化为指定的Java对象
获取JSON请求体参数:
@PostMapping("/book")
public ResponseEntity<Book> createBook(@RequestBody Book book) {
// ...
}
@RequestParam用于获取URL查询字符串或表单数据的参数。
@RequestBody用于获取请求体中的参数,并将其转换为Java对象。