欢迎各位兄弟 发布技术文章
这里的技术是共享的
macos curl post 提交示例
在 macOS 终端中使用 cURL 工具发送 POST 请求的几种常见方式:
bashcurl -X POST https://example.com/api
bashcurl -X POST https://example.com/api \ -d "username=admin&password=123456"
或使用多个 -d 参数:
bashcurl -X POST https://example.com/api \ -d "username=admin" \ -d "password=123456"
bashcurl -X POST https://example.com/api \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"123456"}'
bashcurl -X POST https://example.com/api \ -H "Content-Type: application/json" \ -d @data.json
bashcurl -X POST https://example.com/api \ -H "Authorization: Bearer token123" \ -H "Content-Type: application/json" \ -d '{"key":"value"}'
添加 -v 参数查看详细输出:
bashcurl -v -X POST https://example.com/api \ -H "Content-Type: application/json" \ -d '{"test":"value"}'
macOS 上的 cURL 是系统自带的,无需额外安装。如果需要更新到最新版本,可以使用 Homebrew: brew install curl
-v -X -H -d 分别表示什么意思
在 curl 命令中,-v、-X、-H、-d 是常用的选项,具体含义如下:
-v(verbose,详细模式)
作用:显示详细的请求和响应信息,包括请求头、响应头、SSL握手等调试信息。
示例:
bashcurl -v https://example.com
输出:会显示完整的 HTTP 请求和响应过程,适合调试。
-X(指定 HTTP 方法)
作用:指定 HTTP 请求方法(如 GET、POST、PUT、DELETE 等)。
默认:如果不指定 -X,curl 默认使用 GET。
示例:
bashcurl -X POST https://example.com/api
注意:如果使用 -d(发送数据),curl 会自动设置为 POST,此时可以省略 -X POST。
为什么 叫 -X
在 macOS 的 curl 命令中,-X 是 --request 的简写。用来指定 HTTP 请求方法(HTTP request method)。
在 curl 命令中,-X 是 "request"(请求)的简写,用来指定要发送的 HTTP 方法类型。通常情况下,curl 会根据请求的参数自动选择合适的方法(例如,GET 或 POST),但是使用 -X 可以显式指定其他 HTTP 方法。
例如:
-X GET:指定 GET 方法(默认方法)
-X POST:指定 POST 方法
-X PUT:指定 PUT 方法
-X DELETE:指定 DELETE 方法
这样,你可以根据需要指定不同的 HTTP 请求方法。
-X 这个选项名的选择确实有点特别,有几种可能的解释:
因为请求方法是"额外"指定的,覆盖了 curl 的默认行为
类似于其他命令中 X 表示"扩展"或"额外"功能
指定要执行的操作类型(GET、POST、PUT等)
在 Unix/Linux 工具中,-X 常用于表示特殊或高级选项
例如:tar -x(extract)、ssh -X(X11 forwarding)
# 其他可能的选择已被占用: curl -G # 已用于 --get curl -P # 已用于 --proxytunnel curl -R # 已用于 --remote-time curl -M # 已用于 --manual
虽然没有官方的明确说明,但在很多命令行工具中:
单字母选项通常选择有助记意义的字母
X 可能源自"eXtended"或"eXtra"的概念
# 有些 HTTP 客户端使用 -m 或 --method
httpie: http POST example.com
wget: 没有直接等效选项(主要限于 GET)
所以 -X 主要是 curl 设计者的选择,既保持了简洁性,又避免了与其他选项的冲突。
-H(添加 HTTP 请求头)
作用:设置 HTTP 请求头(headers),可以多次使用 -H 添加多个头。
格式:-H "Header-Name: Header-Value"
常用场景:
设置 Content-Type(如 application/json)
添加 Authorization(如 Bearer token123)
示例:
bashcurl -X POST https://example.com/api \ -H "Content-Type: application/json" \ -H "Authorization: Bearer abc123"
-d(发送 POST 数据)
作用:发送 HTTP POST 请求的数据(request body)。
默认行为:
如果使用 -d,curl 会自动设置 Content-Type: application/x-www-form-urlencoded(表单格式)。
如果需要发送 JSON,需手动指定 -H "Content-Type: application/json"。
示例:
发送表单数据:
bashcurl -X POST https://example.com/login \ -d "username=admin&password=123456"
发送 JSON 数据:
bashcurl -X POST https://example.com/api \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"123456"}'
特殊用法:
@filename:从文件读取数据(如 -d @data.json)。
多个 -d 参数会自动合并(用 & 连接)。
| 选项 | 含义 | 示例 |
|---|---|---|
-v
| 显示详细调试信息 | curl -v https://example.com
|
-X
| 指定 HTTP 方法(如 POST) | curl -X POST https://example.com
|
-H
| 添加 HTTP 请求头 | curl -H "Content-Type: application/json"
|
-d
| 发送 POST 请求数据 | curl -d "key=value"
|
-X 可以省略:如果用了 -d,默认就是 POST。
-H 可以多次使用:添加多个请求头。
-d 数据可以是字符串、文件(@file)或多参数组合。
如果有其他选项需要解释,欢迎继续提问!
-v -X -H -d 分别是什么简写
在 curl 命令中,-v、-X、-H、-d 是常用选项的 简写形式(短选项),它们的完整写法(长选项)和含义如下:
-v(简写)
完整写法:--verbose
含义:显示详细调试信息(请求头、响应头、SSL 握手等)。
示例:
bashcurl -v https://example.com # 等价于 curl --verbose https://example.com
-X(简写)
完整写法:--request
含义:指定 HTTP 请求方法(如 GET、POST、PUT 等)。
示例:
bashcurl -X POST https://example.com # 等价于 curl --request POST https://example.com
-H(简写)
完整写法:--header
含义:添加 HTTP 请求头(可多次使用)。
示例:
bashcurl -H "Content-Type: application/json" https://example.com # 等价于 curl --header "Content-Type: application/json" https://example.com
-d(简写)
完整写法:--data
含义:发送 POST 请求的数据(默认会隐式设置 POST 方法)。
示例:
bashcurl -d "key=value" https://example.com # 等价于 curl --data "key=value" https://example.com
| 简写选项 | 完整选项 | 作用 |
|---|---|---|
-v
| --verbose
| 显示详细调试信息 |
-X
| --request
| 指定 HTTP 方法 |
-H
| --header
| 添加 HTTP 请求头 |
-d
| --data
| 发送 POST 请求的数据体 |
简写与完整选项可以混用:例如:
bashcurl --verbose -X POST -H "Content-Type: application/json" --data '{"key":"value"}'
查看所有选项:
运行 curl --help 或 man curl 查看完整文档。
如果有其他选项需要了解,欢迎继续提问!
表单数据 为 qy:0 policy_id:187 computer_id:5425
post 方法
url 为 http://aaaa.bbbb.com/ajax_qiyong_jingyong_computer_in_policy?new=1
macos shell 的 curl 如何使用
在 macOS 的 shell 中使用 curl 发送 POST 请求并提交表单数据,可以按照以下方式操作:
bashcurl -X POST \ "http://aaaa.bbbb.com/ajax_qiyong_jingyong_computer_in_policy?new=1" \ -d "qy=0" \ -d "policy_id=187" \ -d "computer_id=5425"
-X POST 指定使用 POST 方法
-d 用于发送表单数据(会默认设置 Content-Type: application/x-www-form-urlencoded)
多个 -d 参数会被 curl 自动用 & 连接起来
bashcurl -X POST \ "http://aaaa.bbbb.com/ajax_qiyong_jingyong_computer_in_policy?new=1" \ -H "Authorization: Bearer your_token_here" \ -d "qy=0" \ -d "policy_id=187" \ -d "computer_id=5425"
bashcurl -X POST ... > response.json
-X 是什么简写
-X 是 curl 命令的选项(option),用于 指定 HTTP 请求方法(如 GET、POST、PUT、DELETE 等)。
-X 不是简写,而是 curl 的一个标准选项,完整写法就是 -X(没有更长的形式)。
作用:显式控制 HTTP 请求方法(默认情况下,curl 会根据参数自动选择方法,比如 -d 默认为 POST)。
示例对比:
默认行为(不加 -X):
bashcurl -d "qy=0" "http://example.com" # curl 会自动使用 POST,因为用了 -d
显式指定(加 -X):
bashcurl -X POST -d "qy=0" "http://example.com" # 效果同上,但明确指定了方法
强制使用其他方法(如 DELETE):
bashcurl -X DELETE "http://example.com/resource"
-X POST?虽然 -d 会默认让 curl 使用 POST,但 显式写出 -X POST 更清晰,避免歧义(尤其是在复杂的脚本中)。
curl 选项:| 选项 | 作用 |
|---|---|
-H
| 添加请求头(如 -H "Content-Type: application/json") |
-d
| 发送表单数据(默认 POST) |
-G
| 强制使用 GET,此时 -d 的数据会变成 URL 参数 |
-v
| 显示详细请求/响应信息(调试用) |
-o
| 将响应保存到文件(如 -o result.json) |
如果还有疑问,可以试试 man curl 查看完整手册!