【Shell】网络利器之 curl

前端之家收集整理的这篇文章主要介绍了【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://www.jb51.cc/article/p-qepumgeg-wk.html

猜你在找的Bash相关文章