curl命令基本使用小总结

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}"\ntime_connect: "%{time_connect}"\ntime_appconnect: "%{time_appconnect}"\ntime_pretransfer: "%{time_pretransfer}"\ntime_starttransfer: "%{time_starttransfer}"\ntime_total: "%{time_total}"\n" "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表示认证成功。

原文地址:https://www.cnblogs.com/wshenjin/p/9144540.html

时间: 2024-11-13 08:13:54

curl命令基本使用小总结的相关文章

grep命令和curl命令的使用方法

今天看了汪海写的python爬虫教程,说实话看不懂...于是就用bash下的工具自己开始写了一个抓取糗事百科的糗事的脚本,期间搜索到了grep和curl命令的一些使用技巧. grep命令,使用grep命令来进行文本的通配,一般只是显示匹配的行,但是使用以下几个参数就可以显示上下文了: -C [num] #显示匹配行的上下各num行 -A [num] #显示匹配行的后num行 -B [num] #显示匹配行的前num行 curl这个下载工具,或者已经算不上是下载工具了,因为curl过于强大了,主要

postman生成curl命令和request

postman使用小技巧,可以生成curl命令和各种语言的request请求: curl命令 okhttp go 原文地址:http://blog.51cto.com/thinklili/2344301

Linux系统curl命令

curl命令 curl  -I  网址    //-I :省略源代码查看,内容如下: 我们查看的是HTTP/1.1 200 OK 这一行 常用状态吗有:200 301 302 404 403 502 503 上述状态码中,只有  200 是OK 的 如果出现301 302 ,它可能是因为在服务端设置了  跳转 ,内容如下: 上图显示,HTTP/1.1 301 设置了跳转,跳转到了下面:Location:http://www.aminglinux.com/bbs/forum.php -x  可以指

curl 命令获取网络网站的响应码

curl命令参数很多,博主很多都没有用过.今天发现可以用-w参数挺好用的. -w:--write-out,作用就是输出点什么.curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出.输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{variable_name}的格式,如果需要输出%,double一下即可,即%%,同时,\n是换行,\r是回车,\t是TAB.curl会用合适的值来替代输出格式中的变量,所有可用变量如下: url_effective 最终获取的url地

curl 命令详解

curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具.作为一款强力工具,curl支持包括HTTP.HTTPS.ftp等众多协议,还支持POST.cookies.认证.从指定偏移处下载部分文件.用户代理字符串.限速.文件大小.进度条等特征.做网页处理流程和数据检索自动化,curl可以祝一臂之力. -a/--append 上传文件时,附加到目标文件 -A/--user-agent 设置用户代理发送给服务器 -an

Windows下安装使用curl命令

本机环境 Windows 7 方法/步骤 1.进入网站 https://curl.haxx.se/download/?C=M;O=D网站 2.根据自己的操作系统位数和是否需要SSL下载相应的版本. 这里下载curl-7.33.0-win64-ssl-sspi.zip,下载完成之后解压到需要使用curl命令的目录.这里为了方便我先直接解压到当前目录. 3.在本窗口下打开运行该命令 [没有建立系统环境变量,所以只能在本目录下运行],检测是否可以正常运行 注意: 想得到上面的"在此处打开命令窗口(W)

windows(64位)下使用curl命令

Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 工具下载 在官网处下载工具包:http://curl.haxx.se/download.html 使用方式一:在curl.exe目录中使用 解压下载后的压缩文件,通过cmd命令进入到curl.exe所在的目录. 由于博主使用的是windows 64位 的系统,因此可以使用I386下的curl.exe工具. 进入到该目录后,执行curl --hel

curl 命令

curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具.作为一款强力工具,curl支持包括HTTP.HTTPS.ftp等众多协议,还支持POST.cookies.认证.从指定偏移处下载部分文件.用户代理字符串.限速.文件大小.进度条等特征.做网页处理流程和数据检索自动化,curl可以祝一臂之力. 语法 curl (选项) (参数) 选项 -a/--append -A/--user-agent <agent st

curl命令详解

对于windows用户如果用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,因为路径已经自动给你配置好了. linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正. -a/--append 上传文件时,附