自学内容网 自学内容网

HTTP请求中常见的传参方式|GET、POST 请求的传参方式

常见的传参方式

  1. URL 查询字符串(适用于 GET 请求)
    示例参考GET 请求中的传参方式

  2. 请求体(适用于 POST、PUT、PATCH 请求)

    描述: 参数可以通过请求体传递,常用于提交复杂数据结构,如 JSON 或表单数据。
    常用格式:
    application/json: 用于发送 JSON 数据。
    application/x-www-form-urlencoded: 用于发送表单数据,数据以 key=value 的形式编码。
    示例参考POST 请求中的传参方式

  3. 请求头

    描述: 参数可以通过请求头传递,通常用于身份验证、内容类型等信息。

    GET /api/resource HTTP/1.1
    Authorization: Bearer your_token
    
  4. 路径参数(适用于 RESTful API)

    描述: 在 URL 路径中嵌入参数,通常用于标识资源。

    请求资源:请求 ID 为 123 的用户的详细信息 
    GET /api/resource/123 HTTP/1.1  这里的 `123` 是资源 ID
    
    更新资源:更新 ID 为 123 的用户的信息
    PUT /api/users/123 HTTP/1.1
    Content-Type: application/json
    
    {
        "name": "John Doe",
        "email": "john@example.com"
    }
    
  5. Cookies

    描述: 参数也可以通过 Cookies 传递,通常用于会话管理。

    GET /api/resource HTTP/1.1
    Cookie: sessionId=abc123
    
  6. 其他自定义方式

    描述: 有些应用可能会定义特定的参数传递方式,例如在 URL 的片段(# 后)中传递参数,通常不被服务器处理,但可以在客户端使用。

    GET /api/resource#key1=value1 HTTP/1.1
    

POST 请求

在 HTTP 中,POST 请求用于向服务器发送数据,通常用于提交表单或上传文件。请求参数可以通过不同的方式传递,具体取决于上下文和内容类型

常见的请求参数传递方式

  1. 表单数据(application/x-www-form-urlencoded)

    这是最常见的方式,参数以键值对的形式传递,使用 & 符号分隔。

    POST /submit HTTP/1.1
    Host: www.example.com
    Content-Type: application/x-www-form-urlencoded
    
    username=johndoe&password=secret
    
  2. JSON 数据(application/json)

    在一些 API 中,特别是 RESTful API,常常使用 JSON 格式传递请求参数。

    POST /api/user HTTP/1.1
    Host: www.example.com
    Content-Type: application/json
    
    {
        "username": "johndoe",
        "password": "secret"
    }
    
    

    如果要传多层级json 内容

    POST /api/user HTTP/1.1
    Host: www.example.com
    Content-Type: application/json
    
    {
        "username": {"name1": {"name2": "value"}},
        "password": "secret"
    }
    
  3. Multipart 表单数据(multipart/form-data)
    这种方式通常用于文件上传,允许在同一请求中发送文件和其他字段。

    POST /upload HTTP/1.1
    Host: www.example.com
    Content-Type: multipart/form-data; boundary=---011000010111000001101001
    
    -----011000010111000001101001
    Content-Disposition: form-data; name="username"
    
    johndoe
    -----011000010111000001101001
    Content-Disposition: form-data; name="file"; filename="example.txt"
    Content-Type: text/plain
    
    [文件内容]
    -----011000010111000001101001--
    
  4. URL 查询参数

    尽管不常用于 POST 请求,但你仍然可以在 URL 中附加查询参数。

    POST /submit?ref=homepage HTTP/1.1
    Host: www.example.com
    Content-Type: application/x-www-form-urlencoded
    
    username=johndoe&password=secret
    

GET 请求

传参方式和特殊字符处理

在 GET 请求中,参数通常通过 URL 查询字符串传递。

  1. 基本格式

    GET 请求的基本格式

    GET /path?key1=value1&key2=value2 HTTP/1.1
    Host: www.example.com
    
  2. 多个参数

    可以在查询字符串中传递多个参数,每个参数之间用 & 符隔。

    GET /api/user?name=john&age=30&name2=john2 HTTP/1.1
    Host: www.example.com
    
  3. 带有特殊字符的参数

    在参数值中使用特殊字符时,必须进行 URL 编码。例如,空格编码为 %20 或 +。

    GET /path/search?query=python%20 HTTP/1.1
    Host: www.example.com
    
  4. URL 查询参数的长度限制

    需要注意的是,GET 请求的查询字符串长度是有限制的,具体限制取决于浏览器和服务器。通常建议将 GET 请求用于不超过 2000 个字符的查询字符串。


原文地址:https://blog.csdn.net/cs_mengxi/article/details/142868005

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!