cURL入门教程

声明:本文主要参考了阮一峰的博文,在此声明。

概念介绍

cURL,全称Command Line URL viewer,是一种命令行工具,用来发送网络请求,然后得到和提取数据,显示在标准输出(stdout);

常用方式

1. 查看网页源代码

$ url www.cnblogs.com

如果要把网页保存下来,可以使用’-o’参数,相当于使用wget命令。

$ curl -o [文件名] www.cnblogs.com

2.自动跳转

-L参数,curl就会自动跳转到新的网址

$ curl -L www.cnblogs.com

3.显示头信息

-i参数,可以显示http response的头信息,后面是网页代码。

$ curl -i www.cnblogs.com
< HTTP/1.1 200 OK
< Date: Wed, 06 Jan 2016 14:07:03 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 45225
< Connection: keep-alive
< Vary: Accept-Encoding
< Cache-Control: public, max-age=96
< Expires: Wed, 06 Jan 2016 14:08:40 GMT
< Last-Modified: Wed, 06 Jan 2016 14:06:40 GMT
< X-UA-Compatible: IE=10

-I参数只显示http response的头信息。

4.显示通信过程

-v参数,可以显示一次http通信的整个过程,包括端口连接和http request的头信息。

$ curl -v www.cnblogs.com
Output: 
* Rebuilt URL to: www.cnblogs.com/
* Hostname was NOT found in DNS cache
*   Trying 42.121.252.58...
* Connected to www.cnblogs.com (42.121.252.58) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: www.cnblogs.com
> Accept: */*

如果觉得上面的信息不够,可以使用下面这个命令查看更详细的通信过程。

$ curl --trace output.txt www.cnblogs.com
或者
$ curl --trace-ascii output.txt www.cnblogs.com

运行后,请打开output.txt文件查看。

5.发送表单信息

发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面即可。

$ curl www.cnblogs.com/form.cgi?data=xxx

POST方法必须把数据和网址分开,curl就要用到–data参数。

$ curl -X POST --data "data=xxx" www.cnblogs.com/form.cgi

6.HTTP动词(用的最多)

curl默认支持的HTTP动词是GET,使用-X参数可以支持其他动词。

$ curl -X POST www.cnblogs.com
$ curl -X DELETE www.cnblogs.com

7.文件上传

假设文件上传的表单是下面这样的:

<form method="POST" enctype='multipart/form-data' action="upload.cgi">
    <input type=file name=upload>
    <input type=submit name=press value="OK">
</form>

可以使用curl这样上传文件:

$ curl --form upload=@localfilename --form press=OK [URL]

8.Referer字段

在http request头信息中,增加一个referer字段,表示你是从哪里过来的。

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

9.User Agent字段

这个字段用来表示客户端设备的信息。服务器有时会根据这个字段,针对不同的设备,
返回不同格式的网页,比如手机版和桌面版。

$ curl --user-agent[User Agent]" [URL]

10.cookie(移动端不支持cookie,现在都用token)

使用--cookie参数,可以让curl发送cookie。

$ curl --cookie "name=xxx" www.cnblogs.com

至于具体的cookie设置,可以从http response头信息中的Set-Cookie字段中得到。
-c cookie-file可以保存服务器返回的cookie到文件,-b cookie-file可以使用这个文件作为cookie信息,
作为后续的请求。

$ curl -c cookies http://www.cnblogs.com
$ curl -b cookes http://www.cnblogs.com

11.增加头信息

有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。

$ curl --header ”Content-Type:application/json" http://cnblogs.com

12.HTTP认证

有些网域需要HTTP认证,这是需要用到--user参数。

$ curl --user name:password example.com

参考

1.curl网站开发指南
2.Using cURL to automate HTTP jobs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值