Curl命令行参数

使用 Curl 发送 POST 请求的详细指南

什么是 POST 请求

在 HTTP 协议中,POST 请求是一种常用的方法,用于向服务器提交数据。与 GET 请求不同,POST 请求可以将数据包含在请求体(body)中,这使得它适合传输大量数据,如表单数据、文件上传等。

基本的 Curl POST 命令

一个基本的 curlPOST 请求可能看起来像这样:curl -X POST http://example.com/api/resource
这里,-X POST指定了请求方法为 POST,而 http://example.com/api/resource 是请求的 URL。

添加请求头

在实际应用中,我们经常需要添加一些请求头(headers)来提供额外的信息,比如内容类型、认证信息等。以下是一些常见的请求头:
Accept:指定客户端能够处理的媒体类型。
Content-Type:指定发送到服务器的数据类型。
Origin:指示请求来自哪个源。
Sec-Fetch-*:一系列与跨源资源共享(CORS)相关的头,用于浏览器安全。

发送数据

使用 -d--data 参数,我们可以向服务器发送数据。这些数据可以是表单数据、JSON 对象等。

完整的 Curl POST 命令 示例

下面是一个完整的curl命令示例,它包含了上述所有元素:

curl -v -X POST 'http://localhost:8080/api/json' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json' \
-H 'Login-Type: inner' \
-H 'Origin: http://localhost:8080' \
-H 'Pragma: no-cache' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'sec-ch-ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "macOS"' \
-d '{"info_id":"b508b061-0db3-4012-aa7e-e4b9ddaba7c1","test_id":"bc1f01a3-a82b-4b28-af12-b20b9d6da3a8"}'

参数解释
-v:启用详细模式,输出通信的详细信息。
-X POST:指定请求方法为 POST。
http://localhost:8080/api/json':请求的 URL。
-H:后跟请求头,用于指定各种 HTTP 头信息。
Accept:客户端能够处理的媒体类型。
Accept-Language:客户端偏好的语言。
Cache-Control:控制缓存的行为。
Connection:控制连接的持久性。