zoukankan      html  css  js  c++  java
  • 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还有更大的兴趣,其他更多的功能请找无所不能的男人帮忙吧!

  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/dancesir/p/7519689.html
Copyright © 2011-2022 走看看