curl 学习笔记

前言

平时接口调试都是 postman 用得比较多,图形界面,操作简单,缺点就是要多开一个软件,切换窗口。于是就想着学习一下 curl 的使用,直接在终端里调试接口。记录一下常用的请求方式及相关参数。

常用的参数

GET

GET 比较简单,不需要额外的参数。

curl http://localhost:8000/api/mall/users?userId=1752938209629

POST

  • -X 指定请求方式
  • -d 指定 POST 数据,默认 Content-Type 为 application/x-www-form-urlencoded
  • – json 发送 json 数据,自动设置 Content-Type 为 application/json
curl -X POST --json '{
    "username": "比六",
    "gender": "F"
}' http://localhost:8000/api/mall/users

PUT

PUT 请求和 POST 请求类似

curl -X PUT --json '{
    "userId": 1752938209629,
    "username": "比六1"
}' http://localhost:8000/api/mall/users

DELETE

DELETE 请求和 GET 请求类似

curl -X DELETE http://localhost:8000/api/mall/users?userId=1752938209629

文件上传

  • -F 发送表单,可用来上传文件
curl -F "file=@/file" http://localhost:8000/api/mall/upload

文件下载

  • -O 使用远程文件名保存文件到本地
  • -o 下载文件并重命名
curl -O http://localhost:8000/api/mall/download
curl -o myfile.zip http://localhost:8000/api/mall/download

其他常用参数

  • -v 输出详细信息
  • -H 指定请求头,如 -H "Content-Type: application/json"
  • -i 输出响应头信息

终端 JSON 格式化

请求之后调用 python json 进行格式化:

curl http://localhost:8000/api/mall/users | python3 -m json.tool

如果遇到中文乱码问题,需要修改 python/tool.py 文件: /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/tool.py

dump_args 修改如下:

dump_args = {
  'sort_keys': options.sort_keys,
  'indent': options.indent,
  # 'ensure_ascii': options.ensure_ascii,
  'ensure_ascii': False  # 修改后的配置项
}