cURL

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

查看网页
curl www.baidu.com
保存网页
# 将服务器的回应保存成文件,保存路径是当前路径
curl -o 文件名 www.baidu.com
自动跳转
# 自测跟 curl www.baidu.com 命令一样
curl -L www.baidu.com
显示响应头信息
# -i 会显示响应头信息跟网页代码
curl -i www.baidu.com
显示通信过程
# -v 参数会显示一次http通信整个过程,包括端口连接和相应头信息
curl -v www.baidu.com

# 下面的命令可以查看更详细的通信过程
# 直接写入文件名时,保存路径是当前路径
curl --trace output.txt www.baidu.com
# 或者
curl --trace-ascii output.txt www.baidu.com
发送表单信息

GET方法:

curl example.com/form.cgi?data=xxx

POST方法:

# POST 方法必须把数据跟网址分开 
curl -X POST --data "data=xxx" example.com/form.cgi

# 参数--data-urlencode 可以给表单数据进行URL编码
curl -X POST --data-urlencode "data=April 1 " example.com/form.cgi

-d 参数用于发送 post 请求的数据体

# 使用-d 参数后,http请求会自动加上标头Content-Type:application/x-wwww.form-urlencoded
curl -d "login=emma&password=123" -X POST https://baidu.com

PUT方法:

curl -X PUT -d '123123123' http://127.0.0.1:3001/1

DELETE方法:

curl -X DELETE http://127.0.0.1:3001/1
HTTP 动词

curl默认的http动词是get,使用 -X 参数可以支持其他动词:

curl -X POST www.baidu.com
curl -X DELETE www.baidu.com
文件上传

表单样式:

<form method="POST" enctype='multipart/form-data' action="upload.cgi">
  <input type=file name=upload>
  <input type=submit name=press value="OK">
</form>
curl --form upload=@localfileName --form press=ok url

-F 参数可以用来向服务器上传二进制文件

# 下面命令会给HTTP请求加上标头 Content-Type:multipart/form-data,然后将文件photo.png作为file 字段上传
curl -F "file=@photo.png" http://baidu.com
# -F 参数也可以指定 MIME 类型
curl -F "file=@photo.png;type=image/png" http://baidu.com
# -F 参数也可以指定文件名
curl -F "file=@photo.png;filename=me.png" https:baidu.com
# 上面命令中,原始文件名为photo.png,但服务器接收到的文件名为me.png
Referer字段

在请求头中添加 referer 字段,表示从哪里跳转过来

curl --referer https://baidu.com

-e 参数也可以用来设置HTTP的标头Referer,表示请求的来源

curl -e "https://baidu.com?q=example" https://example.com
User Agent 字段

这个字段是用来表示客户端是设备信息,服务器有时会根据这个字段,针对不同设备返回不同格式网页

curl --user-agent "[user agent]" [url]
Cookie

“–cookie” 参数可以让 curl 发送 cookie 字段

curl --cookie "name=xxx" www.baidu.com
# "-c cookie-file" 可以保存服务器返回的cookie到文件
curl -c cookies https://baidu.com
# "-b cookie-file" 可以使用这个文件作为cookie 信息
curl -b cookies https://baidu.com

-b 参数用来向服务器发送 Cookie

# 下面命令会生成一个标头 Cookie:foo=bar,向服务器发送一个名为foo\值为bar的Cookie
curl -b "foo=bar" https://baidu.com
# 下面命令读取本地文件 cookies.txt
curl -b cookies.txt https://baidu.com

具体的cookie值,可以从http response 头信息的 set-cookie 字段中得到

增加头信息

在请求头部消息中增加一个头信息

curl --header "Content-Type:application/json" http://baidu.com
模拟慢网速的环境
# 宽限制在每秒 200K 字节
curl --limit-rate 200k https://baidu.com
指定HTTP请求的代理

-x

# 下面命令指定HTTP请求通过myproxy.com:8080 的sockes5代理发出
# 不指定sockes5 代理的话,默认为HTTP
curl -x socks5://james:cats@myproxy.com:8080 https://www.baidu.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值