curl命令基本使用小总结

wshenjin      2022-02-13     216

关键词:

curl 下载文件

  • -o:将文件保存为命令行中指定的文件名的文件中
  • -O:使用URL中默认的文件名保存文件到本地
  • --limit-rate:限速
  • -C:对大文件使用断点续传功能
  • --silent:不显示进度信息
# 当文件在下载完成之前结束该进程
[[email protected] ~]# curl -O http://www.gnu.org/software/gettext/manual/gettext.html
###### ########             20.1%

# 通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载
[[email protected] ~]# curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
###### #########            21.1%

认证授权

在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权

[[email protected] ~]# curl -u username:password URL
通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
[[email protected] ~]# curl -u username URL

传递请求数据

默认curl使用GET方式请求数据,可以通过 --data/-d 方式指定使用POST方式传递数据

# GET
[[email protected] ~]#curl -u username https://XXXXXXXXXX

# POST
[[email protected] ~]# curl -u username --data "param1=value1&param2=value" https://XXXXXXXXXX

# 也可以指定一个文件,将该文件中的内容当作数据传递给服务器端
[[email protected] ~]# curl --data @filename https://XXXXXXXXXX

注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:
[[email protected] ~]# curl -d "value%201" http://hostname.com

在新版本的CURL中,提供了新的选项 --data-urlencode,通过该选项提供的参数会自动转义特殊字符。
[[email protected] ~]# curl --data-urlencode "value 1" https://XXXXXXXXXX

除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如:
[[email protected] ~]# curl -I -X DELETE https://XXXXXXXXXX

上传文件
[[email protected] ~]#  curl --form "[email protected]" https://XXXXXXXXXX
 

curl 查看响应时间

[[email protected] ~]# curl -o /dev/null -s -w "time_namelookup: "%{time_namelookup}"
time_connect: "%{time_connect}"
time_appconnect: "%{time_appconnect}"
time_pretransfer: "%{time_pretransfer}"
time_starttransfer: "%{time_starttransfer}"
time_total: "%{time_total}"
" "https://www.google.com"  

time_namelookup: 0.005
time_connect: 0.016
time_appconnect: 0.162
time_pretransfer: 0.162
time_starttransfer: 0.217
time_total: 0.261
其中几个参数
  • -o:把curl 返回的html、js 写到垃圾回收站[ /dev/null]
  • -s:掉所有状态信息
  • -w, --write-out FORMAT What to output after completion
时间变量
  • time_total:总时间。
  • time_namelookup:DNS解析时间,从请求开始到DNS解析完毕所用时间。
  • time_connect:连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个time_connect时间减去前边time_namelookup时间。
  • time_appconnect:连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间。
  • time_pretransfer:从开始到准备传输的时间。
  • time_redirect:重定向时间,包括到最后一次传输前的几次重定向的DNS解析,连接,预传输,传输时间。
  • time_starttransfer:开始传输时间。在client发出请求之后,Web 服务器返回数据的第一个字节所用的时间。

在客户端发出请求之后,服务器处理请求并开始发回数据所用的时间是:time_starttransfer – time_connec = 0.201 秒

客户端从服务器下载数据所用的时间是 time_total –time_starttransfer = 0.044 秒.

其他变量:
  • url_effective:The URL that was fetched last. This is most meaningful if you‘ve told curl to follow location: headers.
  • filename_effective: The ultimate filename that curl writes out to. This is only meaningful if curl is told to write to a file with the --remote-name or --output option. It‘s most useful in combination with the --remote-header-name option.
  • http_code: http状态码,如200成功,301转向,404未找到,500服务器错误等。
  • http_connect :The numerical code that was found in the last response (from a proxy) to a curl CONNECT request. (Added in 7.12.4)
  • size_download :下载大小
  • size_upload :上传大小
  • size_header:下载的header的大小
  • size_request:请求的大小
  • speed_download:下载速度,单位-byte/s
  • speed_upload:上传速度,单位-byte/s
  • content_type:content-Type
  • num_connects:Number of new connects made in the recent transfer.
  • num_redirects:Number of redirects that were followed in the request.
  • redirect_url: When a HTTP request was made without -L to follow redirects, this variable will show the actual URL a redirect would take you to.
  • ftp_entry_path:The initial path libcurl ended up in when logging on to the remote FTP server.
  • ssl_verify_resul:ssl认证结果,返回0表示认证成功。

linux—curl命令用法大总结

目录1、基本用法2、保存访问的网页3、测试网页返回值4、指定proxy服务器以及其端口5、cookie6、模仿浏览器7、伪造referer(盗链)8 查看详情

curl命令的基本使用

...                       curl命令的基本使用                                        作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律... 查看详情

shell命令curl和wget使用代理采集网页的总结大全

LinuxShell提供两个非常实用的命令来爬取网页,它们分别是curl和wget米扑代理,作为大数据分析研究的基础服务,对其做了深入的研究和总结。 curl和wget使用代理curl支持http、https、socks4、socks5wget支持http、https Shellcurlwget示... 查看详情

linux运维命令curl-日常用法总结

参考技术A在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使... 查看详情

curl的基本授权命令

】curl的基本授权命令【英文标题】:basicauthorizationcommandforcurl【发布时间】:2014-01-1504:50:37【问题描述】:如何使用64位编码凭据设置基本授权?这两个命令我试过了,但没用,请指教。curl-i-H\'Accept:application/json\'Authorization:Basic&... 查看详情

cmake用法及常用命令总结

CMakeLists.txt的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。指令是大小写无关的,参数和变量是大小写相关的。但推荐全部使用大写指令。符号#后面的内容被认为是注释。命令由命令名称、小括号和参... 查看详情

curl命令总结

curl方式post请求curl-A""-X"POST""http://xxx.com/api/"-H"Content-Type:application/x-www-form-urlencoded;charset=utf-8"--data-urlencode"hid=hid"--data-urlencode"type=1"  查看详情

linux基本命令总结

接上篇:33,Linux中的kill命令用来终止指定的进程(terminateaprocess)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstre... 查看详情

使用基本身份验证通过 CURL 发布 JSON

...【发布时间】:2011-08-3120:11:06【问题描述】:我正在使用命令行中的Curl来调试我正在处理的小型Webapi。Webapi需要基本身份验证和JSON对象作为输入(POST)。目前此基本身份验证工作正常:curl-i--uservaliduser:70e12a10-83c7-11e0-9d 查看详情

linux的基本使用(总结自用版)

Linux的基本使用Linux命令机制每次读取一行,以空格分词命令内部命令外部命令选项(可选)参数最常用的内部命令我是谁whoami我在哪pwd我周围有什么ls我要去哪里cd文件和目录操作创建文件或目录touch(文件)/mkdir(... 查看详情

linux远程复制文件命令小总结(代码片段)

scp命令格式>scp[参数][原路径][目标路径]参数-1强制scp命令使用协议ssh1-2强制scp命令使用协议ssh2-4强制scp命令只使用IPv4寻址-6强制scp命令只使用IPv6寻址-B使用批处理模式(传输过程中不询问传输口令或短语)-C允许压缩。(将-C... 查看详情

使用 curl 命令删除 linux 服务器中的文件

】使用curl命令删除linux服务器中的文件【英文标题】:Deletefileinlinuxserverusingcurlcommand【发布时间】:2018-11-1815:00:55【问题描述】:我想使用curl命令删除我保存在linux服务器中的文件。基本上尝试使用curl实现“rm-rf/myfolder/myFile.zip... 查看详情

从命令行使用 CURL 的 https 连接

】从命令行使用CURL的https连接【英文标题】:httpsconnectionusingCURLfromcommandline【发布时间】:2012-04-2205:01:54【问题描述】:我是Curl和Cacerts世界的新手,在连接服务器时遇到问题。基本上,我需要通过https测试从一台机器到另一台... 查看详情

postman生成curl命令和request

postman使用小技巧,可以生成curl命令和各种语言的request请求:curl命令okhttpgo 查看详情

linux—curl命令用法大总结(代码片段)

...文件11、显示抓取错误 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具语法ÿ... 查看详情

常用git命令总结(代码片段)

Git是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,今天,我们就在这里总结一下它的一些基本指令,算是做一份操作笔记吧。前言Git是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,今天,我们... 查看详情

emmet工具的基本使用,总结(代码片段)

...idea,在Settings中设置一下就可以了。二、正式开始,常用命令新建一个HTML文档html:5或者!生成HTML5结构html:xt生成HTML4过渡型html:4s生成HTML4严格型生成带有id、class的HTML标签1、生成后代元素:> 大于号表示后面要生成的内容是当... 查看详情

mongodb基本命令总结

其实一直想整理下我常使用的MongoDB数据库的一些操作命令,终于有时间了~MongoDB是一种开源的,免费的非关系型数据库(NoSql),不存在表、记录等概念,与通常的关系型数据库有些差异:MongoDB里的集合可类比成关系数据库中的表... 查看详情