CURL的命令行工具非常强大,这些数据交互的功能基本都是通过URL进行的。下面这篇文章主要分享了Linux中命令行curl的10个常见用法示例,通过示例代码非常详细的介绍。有需要的人来看看吧。
前言
在Linux中,curl是一个文件传输工具,它通过使用url规则在命令行下工作。可以说是非常强大的http命令行工具。它支持文件的上传和下载,是一个综合性的传输工具,但传统上习惯把url称为下载工具。
语法:# curl[选项] [url]
本文主要和大家分享Linux命令行cURL的10种常见用法,供大家参考。我们来看看详细介绍:
1. 获取页面内容
当我们在没有任何选项的情况下使用curl时,默认情况下我们会发送一个GET请求来将链接的内容输出到标准输出。
科尔http://www.codebelief.com
2. 显示 HTTP 头
如果我们只想显示HTTP头,而不是文件内容,我们可以使用-I选项:
http://www.codebelief.com卷一
输出是:
HTTP/1.1 200没问题
服务器:nginx/1.10.3
日期:2017年5月11日星期四08:24:45 GMT
内容类型:文本/html;charset=utf-8
内容长度:24206
连接:保持活动
x-power-By:Express
Cache-Control: public,max-age=0
ETag:W/' 5e8e-yw5zdnvvly 9/aenmx 7 fvxq '
变化:接受-编码
还可以同时显示HTTP头和文件内容。使用-i选项:
http://www.codebelief.com卷一
输出是:
HTTP/1.1 200没问题
服务器:nginx/1.10.3
日期:2017年5月11日星期四08:25:46 GMT
内容类型:文本/html;charset=utf-8
内容长度:24206
连接:保持活动
x-power-By:Express
Cache-Control: public,max-age=0
ETag:W/' 5e8e-yw5zdnvvly 9/aenmx 7 fvxq '
变化:接受-编码
!文档类型html
html lang='en '
.
/html
3. 将链接保存到文件
我们可以使用符号将输出重定向到本地文件。
科尔http://www.codebelief.com index.html
还可以通过curl自带的-o/-O选项将内容保存到文件中。
-o(小写o):结果将保存到命令行中提供的文件名。
-O(大写O):URL中的文件名将用作保存输出的文件名。
科尔-奥index.htmlhttp://www.codebelief.com
科尔-奥http://www.codebelief.com/page/2/
注意:使用-O选项时,必须确保文件名包含在链接的末尾,否则curl无法正确保存文件。如果链接中没有文件名,您应该
使用-o选项手动指定文件名,或者使用重定向符号。
4. 同时下载多个文件
我们可以使用-o或-O选项同时指定多个链接,并按以下格式编写命令:
科尔-http://www.codebelief.com/page/2/-http://www.codebelief.com/page/3/
或者:
科尔-page1.htmlhttp://www.codebelief.com/page/1/-page2.htmlhttp://www.codebelief.com/page/2/
5. 使用 -L 跟随链接重定向
如果直接用curl打开一些重定向的链接,这种情况下我们无法获得想要的网页内容。例如:
科尔http://codebelief.com
您将得到以下提示:
超文本标记语言
标题301永久移动/标题/标题
body bgcolor='white '
中心h1301永久移动/h1/中心
hrcenternginx/1.10.3/center
/body
/html
当我们通过浏览器打开链接时,我们会自动跳转到http://www.codebelief.com。此时,我们要curl做的就是像浏览器一样跟随链接跳转,得到最终的网页内容。我们可以在命令中添加-L选项,以遵循链接重定向:
科尔-L http://codebelief.com
这样,我们就可以获得重定向的web内容。
6. 使用 -A 自定义 User-Agent
我们可以使用-A来定制用户代理。例如,下面的命令将伪装成Android Firefox浏览器来请求网页:
curl -A 'Mozilla/5.0(安卓;移动;rv:35.0)壁虎/35.0火狐/35.0 ' http://www.baidu.com
我们将在下面使用-H来达到同样的目的。
7. 使用 -H 自定义 header
当我们需要传递一个特定的头时,我们可以像下面这样写:
curl-H ' Referer:www . example . com '-H '用户代理:自定义用户代理' http://www.baidu.com
如你所见,当我们使用-H定制用户代理时,我们需要使用'用户代理:xxx '的格式。
我们可以直接在头中传递Cookie,格式和上面的例子一样:
curl-H ' Cookie:JSESSIONID=d 0112 a 5063d 938586 b 659 ef 8 f 939 be 24 ' http://www.example.com
另一种方式将在下面介绍。
8. 使用 -c 保存 Cookie
当我们使用cURL访问一个页面时,默认情况下不会保存Cookie。在某些情况下,我们希望为下次访问保存Cookie。例如,如果您登录了一个网站,我们希望在您再次访问该网站时保留登录状态,这样您可以在登录时保存Cookie,并在下次访问时阅读它们。
-c后跟要保存的文件名。
curl -c '饼干-例子' http://www.example.com
9. 使用 -b 读取 Cookie
前面我们讲过使用-H发送cookie的方法,就是直接在命令中写入cookie字符串。如果使用-b来自定义Cookie,命令如下:
curl-b ' JSESSIONID=d 0112 a 5063d 938586 b 659 ef 8 f 939 be 24 ' http://www.example.com
如果你想从一个文件中读取Cookie,-H对此无能为力。此时,您可以使用-b来完成此操作:
http://www.example.com的curl -b“饼干示例”
也就是说,-b后面可以跟Cookie字符串或保存Cookie的文件名。
10. 使用 -d 发送 POST 请求
让我们以登陆页面为例来说明使用cURL发送POST请求的方法。假设有一个登录页面www.example.com/login,你只需要提交你的用户名和密码登录。我们可以用cURL来完成这个POST请求,-d用来指定要发送的数据,-X用来指定发送数据的方式:
curl -d '用户名=tompasswd=123456' -X邮政http://www.example.com/login
在使用-d的情况下,如果省略-X,默认模式是POST:
curl-d ' userName=tompasswd=123456 ' http://www.example.com/login
强制使用 GET 方式
发送数据时,不仅可以使用POST方法,还可以使用GET方法,例如:
获取http://www.example.com/api
或者使用-G选项:
科尔-德' somedata '-G http://www.example.com/api
从文件中读取数据
curl-d ' @ data . txt ' http://www.example.com/login
使用Cookie登录
当然,如果我们再次访问该网站,我们仍将处于未注册状态。我们可以通过前面提到的方法保存Cookie,每次访问网站的时候带上,以保持登录状态。
curl-c ' cookie-log in '-d ' userName=tompasswd=123456 ' http://www.example.com/login
再次访问该网站时,请使用以下命令:
curl-b“cookie登录”http://www.example.com/login
这样就可以一直访问登录的页面。
总结
这就是本文的全部内容。希望这篇文章的内容能给你的学习或者工作带来一些帮助。有问题可以留言交流。谢谢你的支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。