cRUL 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在 “标准输出”(stdout)上面。
查看网页源码
1 | $ curl baidu.com |
1 | <html> |
如果要把这个网页保存下来,可以使用 -o
或 --output
参数,这就相当于使用 wget 命令了。1
$ curl -o file_name baidu.com
自动跳转
有的网址是自动跳转的。使用-L
或--location
参数,curl就会跳转到新的网址。1
$ curl -L baidu.com
显示头信息
-i
或 --include
参数可以显示 http response 的头信息,连同网页代码一起。-I
或 --head
参数则是只显示 http response 的头信息。1
$ curl -i baidu.com
1 | HTTP/1.1 200 OK |
显示通信过程
-v
或 --verbose
参数可以显示一次 http 通信的整个过程,包括端口连接和
http request 头信息。1
$ curl -v baidu.com
1 | * Rebuilt URL to: baidu.com/ |
也可以通过 --trace
或 --trace-ascii
命令查看更详细通信过程,执行后通过制定
的日志地址查看1
2$ curl --trace ${log_path} baidu.com
$ curl --trace-ascii ${log_path} baidu.com
HTTP动词
curl默认的HTTP动词是GET,使用-X
参数可以支持其他动词。
1 | $ curl -X POST baidu.com |
增加头信息
1 | # 使用-H 或 --header 可以起到这个作用 |
发送表单信息
1 | # GET方法比较简单,网址后直接跟参数 |
文件上传
1 | $ curl --form upload_field=@localfilename localhost:8002/test |
Referer字段
需要添加request头信息referer标示从哪里跳转来的1
$ curl localhost:8002/test --referer ${from_url}
user-agent字段
使用 --user-agent
或 -A
可以模拟发送 user-agent 字段1
$ curl localhost:8002/test --user-agent "device"
1 | # 发送的cookie可以在response headers中看到 |
HTTP认证
有些网域需要HTTP认证,这时 cURL 需要用到--user
或 -u
参数。1
2# 这时候服务器会在头信息中接收到Authorization字段,值为Basic + name:pass的base64加密数值
$ curl localhost:8002/test --user name:apss