Linux下curl命令的基本使⽤⽅法
⼀、curl命令介绍
cURL利⽤URL语法在命令⾏下⼯作的⽂件传输⼯具,1997年⾸次发⾏,常⽤来请求 Web 服务器。它的名字就是客户端(client)的URL ⼯具的意思。
它的功能⾮常强⼤,命令⾏参数多达⼏⼗种。它⽀持⽂件上传和下载,所以是综合传输⼯具,但按传统,习惯称cURL为下载⼯
具,cURL还包含了⽤于程序开发的libcurl库,可以直接使⽤C语⾔调⽤。
cURL⽀持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
curl还⽀持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、⽤户名
+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。
⼆、curl命令常⽤⽤法介绍
2.1 使⽤curl命令捕获⽹页数据
wbyq@wbyq:~$ curl www.baidu
该命令的语法是直接向www.baidu服务器地址发出get请求,服务器返回的数据会直接显⽰在命令⾏。
如果想将返回的数据保存在⽂件⾥,可以使⽤重定向命令。
wbyq@wbyq:~$ curl "www.baidu" >test.html
或者
wbyq@wbyq:~$ curl -o test.html "www.baidu"
如果请求的URL⾥含有&转义字符,可以在URL连接上加上双引号 或者在&前加\ 就可以取消转义。
curl "image.baidu/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E7%89%87&hs=2&pn=0&spn=0&di=175890&pi=0&rn=1&tn=
2.2 使⽤curl命令下载⽂件
下⾯命令是下载⼀张腾讯官⽹的图⽚,只要给对地址直接下载即可。
curl "img/qzone/qzactStatics/imgs/20190626150721_85796c.png" >123.png
如果不想指定保存的名称,可以使⽤使⽤-O参数,按照服务器上的⽂件名,⾃动存在本地。
wbyq@wbyq:~$ curl -O "img/qzone/qzactStatics/imgs/20190626150721_85796c.png"
使⽤curl下载QQ安装包。
wbyq@wbyq:~$ curl -O "down.qq/qqweb/PCQQ/PCQQ_"
如果想知道请求过程,可以加上-v参数,⽅便调试。
wbyq@wbyq:~$ curl -v -o 123.png "img/qzone/qzactStatics/imgs/20190626150721_85796c.png"
% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
Dload  Upload  Total  Spent    Left  Speed
0    0    0    0    0    0      0      0 --:--:-- --:--:-- --:--:--    0*  Trying 58.49.
* TCP_NODELAY set
* Connected img (58.49.224.43) port 80 (#0)
> GET /qzone/qzactStatics/imgs/20190626150721_85796c.png HTTP/1.1
> Host: img
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: X2S_Platform
< Connection: keep-alive
< Date: Fri, 09 Oct 2020 08:36:40 GMT
< Cache-Control: max-age=259200
< Expires: Mon, 12 Oct 2020 08:36:40 GMT
< Last-Modified: Wed, 26 Jun 2019 15:08:46 GMT
< Content-Type: image/png
< Content-Length: 21366
< X-NWS-LOG-UUID: 13077040326766635903 360f37d0bbde5c541b71c39a5a6c037d
< Access-Control-Expose-Headers: x-client-proto-ver
< Access-Control-Expose-Headers: X-Server-Ip
< Access-Control-Expose-Headers: X-Upstream-IP
< server_ip: 58.49.224.17
< Keep-Alive: timeout=60
< alt-svc: quic=":443"; ma=86400; v="39,38,37,36,35"
< Vary: Origin, Accept
< X-Client-Ip: 172.24.57.14
< X-Server-IP: 58.49.224.17
< X-Cache-Lookup: Hit From Disktank3
< X-DataSrc: 2
< X-ReqGue: 0
< X-Cache-Lookup: Hit From Inner Cluster
<
{ [1720 bytes data]
100 21366  100 21366    0    0  113k      0 --:--:-- --:--:-- --:--:--  112k
* Connection #0 to img left intact
wbyq@wbyq:~$
2.3 curl调⽤接⼝获取北京标准时间
获取北京时间:
wbyq@wbyq:~$ curl "api.k780:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f
747dd4e83c99f2a4&format=json" {"success":"1","result":{"timestamp":"1602232873","datetime_1":"2020-10-09 16:41:13","datetime_2":"2020年10⽉09⽇ 16时41分13秒","week_1":"5","week_2":"星
2.4 curl调⽤接⼝获取天⽓预报
获取南昌未来7天的天⽓预报。
wbyq@wbyq:~$ curl "api.k780:88/?app=weather.future&weaid=南昌&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json" {"success":"1","result":[{"weaid":"237","days":"2020-10-09","week":"星期五","cityno":"nanchang","citynm":"南昌","cityid":"101240101","temperature":"25℃/17℃","h 请求参数说明
string1接⼝ 此处应为:weather.future
string1使⽤ API 的唯⼀凭证 说明
string1md5 后的 32 位密⽂,登陆⽤. 说明
{json|xml}0返回格式
string1城市⽓象编号 如:beijing/北京/1/101010100/202.104.153.201
可以是 weather.city 接⼝中的 weaid,cityid,citynm;也可以是 IP 地址(系统⾃动分析该 IP 所在城市)
jsoncallback string 0 js 跨域使⽤ jsonp 时可使⽤此参数
返回参数说明
{0/1}执⾏结果
string出错消息,当出错时将会出现此节点,否则不出现
curl命令发送post请求带参数date⽇期
string星期
string城市/地区
string温度
string⽓象编号
string湿度
string天⽓ 详见:weather.wtype
string天⽓图标(⽬录 b/c/d/n 供使⽤) 下载图标
string天⽓图标 1(⽬录 b/c/d/n 供使⽤) 下载图标
string风向
string风⼒
number最⾼温度
number最低温度
number最⾼湿度
number最低湿度
number天⽓ ID 详见:weather.wtype
number天⽓ ID1 详见:weather.wtype
number风向 ID
number风⼒ ID
2.5  使⽤post请求向服务器上传参数
语法格式:
curl ip:port/service/name/op -X POST -d 'param1=16¶m2=0¶m3=[{"value":1,"value":1}]'
例如:
curl ":8083/carmonitorsys/errlog/upload.action?token=6899fa62-86b3-4fe3-925e-8afd31dd3370&devId=1126626497aaa88" -X POST -H

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。