curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在”标准输出”(stdout)上面。它支持多种协议,使用curl -h命令可查看其帮助手册,下面列举其常用功能:

1. -X/—request 参数

指定什么类型的请求,如 GET、POST。

  1. # -X GET是可选的
  2. curl -X GET http://localhost:8080/search?data=123
  3. curl -X POST -d "data=123&key=456" http://localhost:8080/search
  4. # JSON数据以 请求体(body)方式请求
  5. curl -H "Content-Type:application/json" -X POST --data '{"message": "sunshine"}' http://localhost:8000/

2. -d/—data 参数

HTTP POST方式传送数据。
-d 选项是以使用 POST 方式向 Server 发送数据,因此在使用 -d 的时候,可以省略 -X POST。请注意,使用 -d 时,将使用 Content-type:application/x-www-form-urlencoded 方式发送数据。如果想使用 JSON 形式 post 数据,可以使用 -H 指定头部类型。如:

  1. curl -H "Content-Type:application/json" -d '{"data":"123","key":"456"}' http://localhost:8080/search

3. -H/—header 参数

自定义头信息传递给服务器。

  1. curl -H "Host:192.168.0.1" -H "accept-language:zh-cn" URL

4. -c/—cookie-jar 参数

操作结束后把 cookie 写入到这个文件中。

  1. curl -d "name=zhangsan&password=123" http://localhost:8080/login -c ./cookie

5. -b/—cookie 参数

cookie 字符串或文件读取位置

  1. # cookie 文件
  2. curl http://localhost:8080/login -b ./cookie
  3. # 直接指定 cookie
  4. curl --cookie "name=zhangsan" http://localhost:8080/login

6. -I/—head

只显示请求头信息

  1. curl -I https://www.baidu.com