ITmob-Ly
发布于 2022-07-11 / 2265 阅读
0

如何使用 curl post 请求发送 JSON 数据

CURL logo

curl 用于使用 HTTP、SFTP、SMTP、TELNET 等多种协议传输数据,本文将介绍如何使用 curl 的 POST 请求并发送 JSON 数据。

要使用 curl 发送能在服务器端正确解析的 JSON 数据,我们需要将带有 application/json 值的 Content-Type 请求头添加到请求中。

如下三种方法post json 数据:

  1. 直接使用要发送的 JSON 数据作为参数

    1. 在Linux中post JSON数据

      curl --header "Content-Type: application/json" \
        --request POST \
        --data '{"userName":"John","password":"123456"}' \
        http://localhost:8080/api/login
      
    2. 在Windows中post JSON数据

      # Windows 系统上略有不同。JSON 数据不应该使用单引号,使用双引号,并且JSON中的双引号应该被转义
      curl --header "Content-Type: application/json" \
        --request POST \
        --data "{\"userName\":\"John\",\"password\":\"123456\"}" \
        http://localhost:8080/api/login
      
  2. 使用 --json 选项简化命令

    --json 选项用作这三个选项的快捷方式:

    • -data [arg]
    • -header "Content-Type: application/json"
    • -header "Accept: application/json"
    curl --json '{"userName":"John","password":"123456"}' http://localhost:8080/api/login
    
  3. 使用文件发送 JSON 数据

    如果要通过文件发送 JSON 数据,则需要使用带有文件名的 @ 参数。

    # 创建一个包含以下内容的 sample-file.json 文件:
    {
        "userName": "John",
        "password": "123456"
    }
    
    curl --header "Content-Type: application/json" \
      --request POST \
      --data-binary @sample-json-file.json \
      http://localhost:8080/api/login