0
点赞
收藏
分享

微信扫一扫

curl发送post请求

curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造http request报文,curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输

使用 curl 发起 POST 请求非常常见,主要通过 -X POST 指定请求方法,并通常配合 -d--data 选项来发送数据。

以下是几种常用的 curl 发起 POST 请求的方式:

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

这是最常见的 POST 方式,模拟 HTML 表单提交。

curl -X POST https://httpbin.org/post 
     -d "name=张三&age=25"

你也可以使用 -F 来发送表单字段(会自动设置为 multipart/form-data):

curl -X POST https://httpbin.org/post 
     -F "name=李四" -F "age=30"

2. 发送 JSON 数据

需要指定 Content-Type: application/json

curl -X POST https://httpbin.org/post 
     -H "Content-Type: application/json" 
     -d '{"name": "王五", "age": 28}'

注意: 使用单引号包裹 JSON 字符串可以避免 shell 解析问题。

3. 从文件读取数据

如果数据内容较长,可以将数据写入文件,然后用 @ 符号读取:

# 发送 JSON 文件
curl -X POST https://httpbin.org/post 
     -H "Content-Type: application/json" 
     -d @data.json

其中 data.json 内容如下:

{"title": "测试", "content": "这是一条测试消息"}

4. 常用选项说明

  • -X POST:显式指定请求方法为 POST。
  • -d "data":发送数据,会自动设置 Content-Type 为 application/x-www-form-urlencoded
  • -H "Header: Value":添加请求头,如 Content-Type
  • -v 或 --verbose:显示详细过程,便于调试。
  • -i:显示响应头。
  • --data-urlencode:对数据进行 URL 编码,适合包含中文等特殊字符。

示例:安全地发送含中文的表单

curl -X POST https://httpbin.org/post 
     --data-urlencode "message=你好,世界" 
     --data-urlencode "name=张三"

5. 完整示例:调用 API

假设你要调用一个用户注册接口:

curl -X POST https://api.example.com/register 
     -H "Content-Type: application/json" 
     -H "Authorization: Bearer your-token" 
     -d '{
           "username": "user123",
           "password": "pass123",
           "email": "user@example.com"
         }'

举报

相关推荐

0 条评论