【Shell】网络利器之 curl

简介

    curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
    简单点说,curl就是以URL为基础的网络请求工具,支持绝大部分的应用层协议,官方Supports:

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.

参数

列举常用的参数,详情可以使用man或查阅官网

参数含义
-A/–user-agent设置用户代理,即HTTP请求头user-agent
-b/–cookie设置cookie(以name=value的形式,以;分开),也可配合cookie文件(读取文件的话配合-D使用)
-X请求方法,默认GET
-d/–data请求参数
-D, –dump-header导出响应头至指定文件
-e/–referer来源地址,即HTTP请求头referer
–connect-timeout设置请求超时时间
–crlf上传是把LF转变成CRLF(回车换行)
-F模拟表单提交,请求头为multipart/form-data
-f/–fail连接失败时直接提示装填码
-G/–get以GET的方式来发送数据
-H/–header设置请求头,设置多个请求头需使用多个-H
-L如果响应头有Location,则客户端依此重定向
–ignore-content-length忽略HTTP头信息的长度
-I/–head只显示响应头信息
–limit-rate设置传输速度
-o 或 >重定向设置文件输出位置
-# 或 –progress显示进度条,默认不显示
–retry-delay设置失败重试间隔时间
–retry-max-time设置失败最大重试时间
-s/–silent静默模式,不输出任何东西

用例

1.最简单的请求

curl http://baidu.com

2.下载中科大的ubuntu镜像,显示进度条,并重命名为ubuntu64.iso

curl -# -o ubuntu64.iso http://219.238.7.69/files/21770000093D9255/d1sux8hvljkk5b.cloudfront.net/ubuntu-16.10-desktop-amd64.iso

3.带cookie请求(可用-H的cookie:"key:value;"代替)

curl -d '' -b 'name=leo' http://localhost:8080/cookie 
或
curl -d '' -H 'cookie:name=leo' http://localhost:8080/cookie 

4.带cookie请求(读取本地文件)

curl -d '' -D head.txt  http://localhost:8080/saveCookie     #保存响应头至head.txt
curl -d '' -b head.txt http://localhost:8080/cookie    #带上刚才的响应头

5.POST带参数请求(application/x-www-form-urlencoded)

curl -d '' http://pingcai.me/api/login?n=123&p=123
或
curl -d 'n=123&p=123' http://localhost:8080/login

6.模拟表单提交(multipart/form-data)

curl -F upload=/tmp/a.txt  -F n='tom'  http://localhost:8080/upload    #上传文件

7.POST带JSON数据

curl -d '{"name":"leo","passwd":"123"}' -H 'content-type:application/json' http://localhost:8080/json

8.下载Oracle的JDK(主要是-L和-H)

比较复杂,参见:http://blog.youkuaiyun.com/gsls200808/article/details/52336745

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值