curl POST 示例

常用选项

-#, --progress-bar 让 curl 显示简单的进度条,而不是更详细的标准计量器。

-b, --cookie <名称=数据> 在请求中附带 cookie。如果没有 =,则指定要使用的 cookie 文件(见 -c)。

-c, --cookie-jar <文件名> 保存响应 cookies 到这个文件。

-d, --data <数据> 在 POST 请求中发送指定的数据。详情如下所述。

-f, --fail 静默失败(如果返回,不输出 HTML 错误表格)。

-F, --form <名称=内容> 提交表单数据。

-H, --header <头部> 附带请求的头部信息。

-i, --include 在输出中包括 HTTP 头部。

-I, --head 仅抓取头部信息。

-k, --insecure 允许不安全的连接成功。

-L, --location 跟随重定向。

-o, --output <文件> 将输出写入 <文件>。可以与此同时使用 --create-dirs 来创建在 -o 路径中指定的任何目录。

-O, --remote-name 将输出写入一个像远程文件命名的文件(只写入当前目录)。

-s, --silent 静默(安静)模式。使用 -S 可以强制显示错误。

-v, --verbose 提供更多信息(用于调试)。

-w, --write-out <格式> 在完成传输后,让 curl 在 stdout 上显示信息。查看 man 页面了解更多关于可用变量的详情。快速强制 curl 在输出后添加换行符的方法: -w "\n"(可以添加到 ~/.curlrc)。

-X, --request 使用的请求方法。

POST 请求

通过 POST 或 PUT 请求发送数据时,两种常见的格式(通过 Content-Type 头部指定)分别是:

  • application/json
  • application/x-www-form-urlencoded

许多 API 都接受这两种格式,所以如果您在命令行使用 curl,就可以比较容易地使用 form urlencoded 格式,而不是 json,因为:

  • json 格式需要很多额外的引号
  • curl 默认会发送 form urlencoded 格式的数据,所以对于 json 必须显式设置 Content-Type 头部

本文档提供了使用这两种格式的示例,包括如何在 curl 请求中使用这两种格式的示例数据文件。

curl 的使用

在 POST 和 PUT 请求中发送数据时,这些是常见的 curl 选项:

  • 请求类型

    • -X POST
    • -X PUT
  • 内容类型头部

    • -H "Content-Type: application/x-www-form-urlencoded"
    • -H "Content-Type: application/json"
  • 数据

    • form urlencoded: -d "param1=value1&param2=value2"-d @data.txt
    • json: -d '{"key1":"value1", "key2":"value2"}'-d @data.json

示例

POST application/x-www-form-urlencoded

application/x-www-form-urlencoded 是默认格式:

curl -d "param1=value1&param2=value2" -X POST http://localhost:3000/data

明确指定:

curl -d "param1=value1&param2=value2" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://localhost:3000/data

使用数据文件

curl -d "@data.txt" -X POST http://localhost:3000/data

POST application/json

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://localhost:3000/data

使用数据文件

curl -d "@data.json" -X POST http://localhost:3000/data
Published At
Categories with 技术
Tagged with
comments powered by Disqus