curl 命令用法

curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。

它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

语法: # curl [option] [url]

参数含义

-X 指定请求方法
-x 指定HTTP请求的代理
-H 指定请求标头
-d 发送POST请求提交的数据,使用-d参数后,会自动将请求转为POST,HTTP请求会自动加上标头Content-Type : application/x-www-form-urlencoded,可省略-X POST
-v 显示http通信的整个过程
-u 设置服务器认证的用户名和密码

-i 显示Response头信息,并打印源码
-I 显示Response头信息,不打印源码

-s 不输出错误和进度信息
-S 指定只输出错误信息

-L 自动跳转,curl默认不跟随跳转
-k 跳过SSL检测

-o 文件名 保存
-O 将URL的最后部分当作文件名保存

1. 获取网页文本信息

# 不加参数时,默认发出GET请求,查看页面源码
curl http://www.baidu.com

2. 显示 HTTP 头

curl -I http://www.baidu.com
# 访问服务接口,观察是否连通
curl -i http://127.0.0.1:8099/status

3. 下载文件(将链接保存到文件)

curl -o index.html http://www.baidu.com 
curl http://www.baidu.com > index.html

4. 使用 -A 自定义 User-Agent

伪装成安卓火狐浏览器对网页进行请求:

curl -A "Mozilla/5.0 (Android; Mobile; rv:35.0) Gecko/35.0 Firefox/35.0" http://www.baidu.com

5. 使用 -H 自定义 header

curl -H "Referer: www.example.com" -H "User-Agent: Custom-User-Agent" http://www.baidu.com

可使用 -H 来自定义 User-Agent 时,需要使用 "User-Agent: xxx" 的格式。

可以直接在 header 中传递 Cookie:

curl -H "Cookie: JSESSIONID=D0112A5063D938586B659EF8F939BE24" http://www.example.com

6. 使用 -c 保存 Cookie

 cURL 访问页面的时候,默认是不会保存 Cookie 的。有些情况下希望保存 Cookie 以便下次访问时使用。

例如登陆了某个网站,希望再次访问该网站时保持登陆的状态,这时就可以现将登陆时的 Cookie 保存起来,下次访问时再读取。

-c 后面跟上要保存的文件名。

curl -c "cookie-example" http://www.example.com

7. 使用 -b 读取 Cookie

前面讲到了使用 -H 来发送 Cookie 的方法,这种方式是直接将 Cookie 字符串写在命令中。如果使用 -b 来自定义 Cookie,命令如下:

1

curl -b "JSESSIONID=D0112A5063D938586B659EF8F939BE24" http://www.example.com

如果要从文件中读取 Cookie,-H 就无能为力了,此时可以使用 -b 来达到这一目的:

1

curl -b "cookie-example" http://www.example.com

-b 后面既可以是 Cookie 字符串,也可以是保存了 Cookie 的文件名。

8. 使用 -d 发送 POST 请求

我们以登陆网页为例来进行说明使用 cURL 发送 POST 请求的方法。

假设有一个登录页面 www.example.com/login,只需要提交用户名和密码便可登录。

我们可以使用 cURL 来完成这一 POST 请求,-d 用于指定发送的数据,-X 用于指定发送数据的方式:

curl -d "userName=tom&passwd=123456" -X POST http://www.example.com/login
curl -X POST --header"Content-Type:application/json" --data ‘{}’ url (使用post模拟json格式请求接口)

使用GET请求

curl -d "somedata" -X GET http://www.example.com/api

从文件中读取 data

curl -d "@data.txt" http://www.example.com/login

8. 断点续传

通过使用-C选项可对大文件使用断点续传功能

curl能够从特定的文件偏移处继续下载,它可以通过指定一个偏移量来下载部分文件:
 curl URL/File -C 偏移量

 通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载
 # 偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -
 curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html

通过--limit-rate选项对CURL的最大网络使用进行限制

# 下载速度最大不会超过1000B/second 
curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

下载指定时间内修改过的文件

当下载一个文件时,可对该文件的最后修改日期进行判断,如果该文件在指定日期内修改过,就进行下载,否则不下载。
该功能可通过使用-z选项来实现:

# 若yy.html文件在2011/12/21之后有过更新才会进行下载
 curl -z 21-Dec-11 http://www.example.com/yy.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值