1. 概述
-
我接触过的很多服务端调试, 接口测试, 最终都落到了这个地方
-
简答介绍 curl 的使用
- 尽量循序渐进, 因为我也不太熟悉
-
大概会提到的命令
- curl
- curl -v
- curl -s
- curl -i
- curl -X
- curl -H
- curl -d
2. curl
- CommandLine Uniform Resource Locator
- 官网
https://curl.haxx.se/
- 特性
- 这个就不多说
- 毕竟它在我手上, 也只是一个简单的 命令行 工具
3. 命令
-
帮助
# 这个命令如果能运行, 说明 机器上确实有 curl # 具体内容不少, 建议在对 curl 有一定认知之后, 再去尝试阅读 > curl --help
-
简单模式 与 繁琐模式
-
简单模式
-
命令
# curl 访问 url 的时候, 建议带上协议 # 如果不带的话, 默认是 http > curl 'http://www.baidu.com'
-
结果
-
返回
# 勉强对齐了一下 # 结果类似一个表格, 前两行是表头, 最后一行, 是结果 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2381 100 2381 0 0 50659 0 --:--:-- --:--:-- --:--:-- 50659 # 后面是 baidu 的html, 就不列举了
-
不好意思, 这个统计信息, 留个坑吧
-
如果不想要这个统计信息, 可以使用 以下命令
> curl -s 'http://www.baidu.com'
-
-
-
-
繁琐模式
-
命令
> curl -v 'http://www.baidu.com'
-
结果
-
返回
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 61.135.169.121... * TCP_NODELAY set * Connected to www.baidu.com (61.135.169.121) port 80 (#0) # 这一部分, 是 请求 > GET / HTTP/1.1 > Host: www.baidu.com > User-Agent: curl/7.63.0 > Accept: */* > # 这一部分, 是响应 < HTTP/1.1 200 OK < Accept-Ranges: bytes < Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform < Connection: Keep-Alive < Content-Length: 2381 < Content-Type: text/html < Date: Fri, 16 Aug 2019 12:48:41 GMT < Etag: "588604c4-94d" < Last-Modified: Mon, 23 Jan 2017 13:27:32 GMT < Pragma: no-cache < Server: bfe/1.0.8.18 < Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/ < { [2381 bytes data] 100 2381 100 2381 0 0 74406 0 --:--:-- --:--:-- --:--:-- 74406 # 这一行, 是请求页面的内容, 略 # 这一行是啥, 我也不太清楚了 * Connection #0 to host www.baidu.com left intact
-
如果你只关心 返回
-
则可以使用以下命令
> curl -i 'http://www.baidu.com'
-
-
-
-
-
请求方式
-
命令
> curl -vs -X GET 'http://www.baidu.com'
-
结果
- 和 繁琐模式 基本一致
- 默认的请求方法, 是 GET
- GET 可以换成其他的方法
-
-
请求头
-
命令
> curl -is -X GET -H 'Content-Type: text/html' 'http://www.baidu.com'
-
-
请求体
-
命令
> curl -vs -X GET -H 'Content-Type: text/html' -d '{"key": "value"}' 'http://www.baidu.com'
-
4. 最后
-
感觉讲得不太好
-
其实这些命令, 可以一笔带过
- 基本就是请求, 看request, 看response, 定请求方式, 设置 request header, 设置 request body
-
相关的东西, 想讲讲又不知道怎么开始
- http 相关
- curl 结果
- 那个统计
- 比如 verbose 模式下的连接过程
-
这玩意其实可以用的地方有很多
- 有机会, 会尝试做些其他的讲解.
-
-
ref
- curl使用指南
- 官网上有本书, 叫做 everything-curl, 写的很详细, 但都是英文.