当前位置:网站首页>Curl 命令使用
Curl 命令使用
2022-07-31 10:34:00 【公博义】
1. 说明
- 是一种命令行工具,能够向服务器发送网络接口请求(默认 GET),获得返回数据并进行提取。它的名字就是客户端(client)的 URL 工具的意思。
- 返回数据显示在标准输出(stdout)上面。
- 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
2. 常用参数
所有参数说明执行:curl --help
-a/--append 上传文件时,附加到目标文件
--anyauth 可以使用“任何”身份验证方法
--basic 使用HTTP基本验证
-B/--use-ascii 使用ASCII文本传输
-d/--data <data> HTTP POST方式传送数据
--data-ascii <data> 以ascii的方式post数据
--data-binary <data> 以二进制的方式post数据
--negotiate 使用HTTP身份验证
--digest 使用数字身份验证
--disable-eprt 禁止使用EPRT或LPRT
--disable-epsv 禁止使用EPSV
--egd-file <file> 为随机数据(SSL)设置EGD socket路径
--tcp-nodelay 使用TCP_NODELAY选项
-E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
--key <key> 私钥文件名 (SSL)
--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
--pass <pass> 私钥密码 (SSL)
--engine <eng> 加密引擎使用 (SSL). "--engine list" for list
--cacert <file> CA证书 (SSL)
--capath <directory> CA目 (made using c_rehash) to verify peer against (SSL)
--ciphers <list> SSL密码
--compressed 要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout <seconds> 设置最大请求时间
--create-dirs 建立本地目录的目录层次结构
--crlf 上传是把LF转变成CRLF
--ftp-create-dirs 如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
--ftp-pasv 使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content> 模拟http表单提交数据
-form-string <name=string> 模拟http表单提交数据
-g/--globoff 禁用网址序列和范围使用{
}和[]
-G/--get 以get的方式来发送数据
-h/--help 帮助
-H/--header <line> 自定义头信息传递给服务器
--ignore-content-length 忽略的HTTP头信息的长度
-i/--include 输出时包括protocol头信息
-I/--head 只显示文档信息
-j/--junk-session-cookies 读取文件时忽略session cookie
--interface <interface> 使用指定网络接口/地址
--krb4 <level> 使用指定安全级别的krb4
-k/--insecure 允许不使用证书到SSL站点
-K/--config 指定的配置文件读取
-l/--list-only 列出ftp目录下的文件名称
--limit-rate <rate> 设置传输速度
--local-port<NUM> 强制使用本地端口号
-m/--max-time <seconds> 设置最大传输时间
--max-redirs <num> 设置最大读取的目录数
--max-filesize <bytes> 设置最大下载的文件总量
-M/--manual 显示全手动
-n/--netrc 从netrc文件中读取用户名和密码
--netrc-optional 使用 .netrc 或者 URL来覆盖-n
--ntlm 使用 HTTP NTLM 身份验证
-N/--no-buffer 禁用缓冲输出
-p/--proxytunnel 使用HTTP代理
--proxy-anyauth 选择任一代理身份验证方法
--proxy-basic 在代理上使用基本身份验证
--proxy-digest 在代理上使用数字身份验证
--proxy-ntlm 在代理上使用ntlm身份验证
-P/--ftp-port <address> 使用端口地址,而不是使用PASV
-Q/--quote <cmd> 文件传输前,发送命令到服务器
--range-file 读取(SSL)的随机文件
-R/--remote-time 在本地生成文件时,保留远程文件时间
--retry <num> 传输出现问题时,重试的次数
--retry-delay <seconds> 传输出现问题时,设置重试间隔时间
--retry-max-time <seconds> 传输出现问题时,设置最大重试时间
-S/--show-error 显示错误
--socks4 <host[:port]> 用socks4代理给定主机和端口
--socks5 <host[:port]> 用socks5代理给定主机和端口
-t/--telnet-option <OPT=val> Telnet选项设置
--trace <file> 对指定文件进行debug
--trace-ascii <file> Like --跟踪但没有hex输出
--trace-time 跟踪/详细输出时,添加时间戳
--url <URL> Spet URL to work with
-U/--proxy-user <user[:password]> 设置代理用户名和密码
-V/--version 显示版本信息
-X/--request <command> 指定什么命令
-y/--speed-time 放弃限速所要的时间。默认为30
-Y/--speed-limit 停止传输速度的限制,速度时间'秒
-z/--time-cond 传送时间设置
-0/--http1.0 使用HTTP 1.0
-1/--tlsv1 使用TLSv1(SSL)
-2/--sslv2 使用SSLv2的(SSL)
-3/--sslv3 使用的SSLv3(SSL)
--3p-quote like -Q for the source URL for 3rd party transfer
--3p-url 使用url,进行第三方传送
--3p-user 使用用户名和密码,进行第三方传送
-4/--ipv4 使用IP4
-6/--ipv6 使用IP6
3. 使用
# 访问百度
curl www.baidu.com
# -o 将服务器的回应保存成文件,等同于 wget 命令
curl -o test.html www.baidu.com
# -O 保存网页中的文件,并将 URL 的最后部分当作文件名
curl -O http://49.232.8.65/shell/docker/docker.sh
# 发生 POST 请求
# 使用 -d 参数时,header 的 Content-Type 被自动赋值为 application/x-www-form-urlencoded,并且发送 POST 请求。-X POST 可省略
curl -d 'user=gongboyi&pwd=syhj' -X POST http://csdn.net/login
# 发送 json 请求
# 发送 json 请求还需要用到两个参数:-X 参数指定 HTTP 请求的方法,-H 参数指定 HTTP 请求的 header
curl -X POST -H "Content-Type: application/json; charset=UTF-8" -d '{"user":"syhj","pwd":"123456"}' http://www.csdn.net/login
# 显示 HTTP 响应头
# -i 参数显示服务端响应内容的同时,也显示 HTTP 响应头
# -I 只显示 HTTP 响应头
curl -i http://www.csdn.net
curl -I http://www.csdn.net
# 显示响应过程
# -v 显示的整个响应过程,我们可以看到底层到底发生了什么
# * 开头的行表示 curl 提供的额外信息,> 开头的行表示请求头,< 开头的行表示响应头
curl -v http://www.csdn.net
# -k 参数指定跳过 SSL 检测
curl -k https://www.example.com
# -s 不输出错误和进度信息
curl -s https://www.example.com
# 不显示任何输出
curl -s -o /dev/null https://google.com
# -u 参数用来设置服务器认证的用户名和密码
curl -u 'bob:12345' https://google.com/login
边栏推荐
猜你喜欢
随机推荐
sql力扣刷题八
可以用聚酯树脂将接线板密封接线盒吗?(接线盒灌封胶用哪种树脂)
顺序表的删除
In half a month, MySQL has been consolidated again, and a tens of thousands of words "super hard core" article has been sorted out!
Summary of three methods for SQL deduplication
Sql optimization summary!detailed!(Required for the latest interview in 2021)
The fifth chapter
【LeetCode】73.矩阵置零
sql中 exists的用法
MySQL中JOIN的用法
Experience innovation and iteration through the development of a lucky draw applet
SQL存储过程详解
出色的移动端用户验证
Web系统常见安全漏洞介绍及解决方案-sql注入
What does "chmod 777-R filename" mean?
redis-企业级使用
SQL力扣刷题七
SQLServer2019 installation (Windows)
SQLSERVER merges subquery data into one field
双链表的创建









