本文主要是介绍HTTP 与 SpringBoot 参数提交与接收协议方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据...
HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Type)。
以下是主要的参数提交协议:
1. URL 查询参数 (Query Parameters)
- 请求方法: GET (也可编程用于其他方法)
- 格式:
?key1=value1&key2=value2
- 示例:
GET /users?id=123&name=John
- 获取方式:
- SpringBoot:
@RequestParam
- Servlet:
request.getParameter()
- SpringBoot:
2. 表单提交 (Form Data)
- 请求方法: POST (也可用于 PUT/PATCH)
- Content-Type:
application/x-www-form-urlencoded
或multipart/form-data
- 格式:
application/x-www-form-urlencoded
:key1=value1&key2=value2
(类似查询参rKuziHCva数但在请求体中)multipart/form-data
: 用于文件上传,包含边界分隔符android
- 示例:
<form action="/submit" method="poChina编程st" enctype="application/x-www-form-urlencoded"> <input name="username" value=javascript"John"> <input type="submit"> </form>
- 获取方式:
- SpringBoot:
@RequestParam
或@ModelAttribute
- Servlet:
request.getParameter()
- SpringBoot:
3. JSON 请求体 (JSON Payload)
- 请求方法: POST/PUT/PATCH/DELETE
- Content-Type:
application/json
- 格式: JSON 对象
- 示例:
{ "name": "John", "age": 30 }
- 获取方式:
- SpringBoot:
@RequestBody
- Servlet: 通过
request.getReader()
读取输入流
- SpringBoot:
4. XML 请求体 (XML Payload)
- 请求方法: POST/PUT/PATCH/DELETE
- Content-Type:
application/xml
或text/xml
- 格式: XML 文档
- 示例:
<user> <name>John</name> <age>30</age> </user>
- 获取方式:
- SpringBoot:
@RequestBody
配合 XML 解析器 - Servlet: 通过
request.getReader()
读取输入流
- SpringBoot:
5. RESTful 路径参数 (Path Variables)
- 请求方法: 任意方法
- 格式:
/resource/{id}
- 示例:
GET /users/123
- 获取方式:
- SpringBoot:
@PathVariable
- Servlet: 需要手动解析 URL
6. HTTP 头部参数 (Headers)
- 位置: HTTP 头部
- 示例:
Authorization: Bearer token123 Accept-Language: en-US
- 获取方式:
- SpringBoot:
@RequestHeader
- Servlet:
request.getHeader()
7. Cookie 参数
- 位置: HTTP Cookie 头部
- 示例:
Cookie: sessionId=abc123; username=John
- 获取方式:
- SpringBoot:
@CookieValue
- Servlet:
request.getCookies()
8. GraphQL 查询
- 请求方法: POST/GET
- Content-Type:
application/json
(通常) - 格式: GraphQL 查询语言
- 示例:
{ "query": "{ user(id: 123) { name age } }" }
- 获取方式: 需要专门的 GraphQL 处理器
9. WebSocket 参数
- 协议: WebSocket
- 格式: 自定义,通常为 JSON 或二进制
- 获取方式: 通过 WebSocket API 处理
10. Server-Sent Events (SSE)
- 协议: HTTP 长连接
- Content-Type:
text/event-stream
- 格式: 特定的事件流格式
- 获取方式: 通过专门的 SSE 客户端处理
总结表
提交方式 | 典型 Content-Type | 主要用途 | SpringBoot 注解 |
---|---|---|---|
URL 查询参数 | - | GET 请求简单参数 | @RequestParam |
表单数据 | application/x-www-form-urlencoded | 传统表单提交 | @RequestParam , @ModelAttribute |
多部分表单 | multipart/form-data | 文件上传 | @RequestPart |
JSON 请求体 | application/json | REST API 复杂数据 | @RequestBody |
XML 请求体 | application/xml | 传统 XML 接口 | @RequestBody |
路径参数 | - | RESTful URL 设计 | @PathVariable |
HTTP 头部 | - | 认证、语言偏好等 | @RequestHeader |
Cookie | - | 会话管理、用户追踪 | @CookieValue |
到此这篇关于HTTP 与 SpringBoot 参数提交与接收协议方式的文章就介绍到这了,更多相关http与springboot参数提交内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于HTTP 与 SpringBoot 参数提交与接收协议方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!