• Linux命令CURL用法


    Curl是一个命令行方式下传输数据的开源传输工具,支持多种协议包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等。同样支持HTTP POST方法,PUT方法,FTP上传,cookie,用户名/密码认证,下载文件端点续传等,功能十分强大。

    1. 先来试试

    curl http://www.baidu.com ,回车之后,HTML内容就显示在屏幕上了。

    2. 下载

    curl –o baidu.html http://www.baidu.com ,执行后还可以看到下载进度提示,完成100%后会自动退出了,把网页保存到baidu.html中了。

    它还有一个大写O的选项,是按照服务器上的文件名保存到本地,如果执行curl –O http://www.baidu.com ,是会报错的,提示找不到文件名,如果换成curl –O http://baike.baidu.com/view/1326315.htm , 就自动保存文件为1326315.html。

    Windows下像flashget这样的工具还支持分块以及断点续传,curl也毫不示弱。

    -C或--continue-at:断点续传,用法如下:

    curl -C http://www.example.com

    -r或--range:分块下载,用法:

    curl -r 0-10240 -o "example.part1" http://www.example.com/example.zip &

    curl -r 10241-20480 -o "example.part2"

    http://www.example.com/example.zip

    其中加&表示在后台执行,需要按CTRL+C才能退出。

    不过下载完后需要自己把这些破碎的文件合并起来

    如果你用UNIX或苹果,用 cat example.part* > example.zip就可以

    如果用的是Windows,用copy /b example.part1+example.part2 example.zip来解决

    3. 上传

    -T/--upload-file:往服务器上传文件,用法:

    curl -T "img[1-1000].png" ftp://example.com/upload/

    或上传多个文件

    curl -T "{file1,file2}" http://www.example.com

    4. POST方法

    -d或--data参数:post请求,用法为curl -d “id=1&name=test” http://example.com/example.php ,

    需把请求的参数和URL分开,同时可以使用curl -d “id=1” -d “name=test” http://example.com/example.php ,相当于提交了两个参数。当提交的参数值中有特殊字符就需要先转义。如空格时,就需要转义成%20。

    --data-urlencode参数:就可以自动转义特殊字符,无需人工事先转义。

    -F或--form:将本地文件上传到服务器,用法为:curl -F “filename=@/home/test/test.pic” http://example.com/example.php 。千万不能漏掉@符号。

    5. 设置referer

    有时候我们如果直接请求某个URL不能成功,它需要判断referer是否正确,那就可以通过-e或--referer参数模拟

    curl --referer http://www.example.com http://www.example.com

    6. 指定User Agent

    -A/--user-agent:伪装成指定的浏览器Chrome访问,用法:

    curl -A “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36” http://www.example.com

    7. 伪造cookie

    -b或--cookie: 有两种用法,一是指定参数和值:curl --cookie "name=xxx" http://www.example.com ;二是从文件读取:curl -b /cookie.txt http://www.example.com

    8. 保存cookie

    -c/--cookie-jar:curl命令执行后保存操作时生成的cookie到文件:

    curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com

    9. 定义输出显示内容

    现在为止对它的崇拜已经是犹如滔滔江水连绵不绝了,慢!还有一个powerful的选项.

    -w/--write-out: 可以定义输出的内容,如常用的http码,tcp连接时间,域名解析的时间,握手时间及第一时间响应时间等,非常强大。

    用法如:

    curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 打印出返回的http码

    curl -o /dev/null -s -w “time_total: %{time_total} " "http://www.baidu.com" 打印响应时间

    如果你对curl还有更大的兴趣,其他更多的功能请找无所不能的男人帮忙吧!

  • 相关阅读:
    使用 RestTemplateBuilder.build() 代替 new RestTemplate()
    R2DBC加入Reactive基金会
    Spring Data 2020.0.1 发布
    前后端分离,注册和登录。涉及Oauth2 Password-Flow 授权方式
    OAuth2 Google、Github自定义登录页面
    Authorization-Server入门(二)
    Authorization-Server入门(一)
    Google或Github 登录Web应用​
    使用SpringBoot发送Gmail和QQ邮箱
    理解同步/异步和阻塞/非阻塞的区别
  • 原文地址:https://www.cnblogs.com/dancesir/p/7519689.html
Copyright © 2020-2023  润新知