良许Linux教程网 干货合集 shell中的curl网络请求的实现具体方法

shell中的curl网络请求的实现具体方法

本篇文章重点为大家讲解一下shell中的curl网络请求的实现具体方法,有需要的小伙伴可以参考一下。

shell中的curl网络请求的实现具体方法

shell中的curl网络请求的实现

curl 是利用URL语法在命令行下工作的文件传输工具,1997年首次发行,支持文件上传和下载,结合shell脚本体验更棒。但按照传统习惯称 curl 为下载工具。

curl 支持的通信协议有 有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP 等等,支持的平台有 Linux、MacOSX、Darwin、Windows、DOS、FreeBSD等等。

一、curl的作用:

1、查看网页源码

denglibingdeMacBook-Pro-4: curl www.baidu.com
 

 type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css>百度一下,你就知道 #0000cc>                    新闻 hao123  地图 视频 贴吧  登录  document.write('登录'); 更多产品       关于百度 About Baidu  ©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号        
 
// 保存整个网页,使用 -o 处理
denglibingdeMacBook-Pro-4: curl -o baidu www.baidu.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2381  100  2381    0     0  77899      0 --:--:-- --:--:-- --:--:-- 79366

2、查看头信息

denglibingdeMacBook-Pro-4: denglibing$ curl -i www.baidu.com
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Mon, 03 Jul 2017 09:12:17 GMT
Content-Type: text/html
Content-Length: 2381
Last-Modified: Mon, 23 Jan 2017 13:28:11 GMT
Connection: Keep-Alive
ETag: "588604eb-94d"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
Accept-Ranges: bytes
...
...
...

3、发送网络请求信息

GET方式请求:

curl example.com/form.cgi?data=xxx  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地

POST方式请求:

//数据和网址分开,需要使用 '--data' 或者 '-d' 参数; curl默认使用GET,使用 '-X' 参数可以支持其他动词, 更多的参数使用 'man curl' 查看
$ curl -X POST --data "data=xxx" example.com/form.cgi
 
// '--user-agent' 字段,表表面客户端的设备信息:
$ curl --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89/mideaConnect MissonWebKit/4021/zh-Hans (AppStore) (4347701760)" http://www.example.com
 
//使用 '--cookie' 参数,可以让curl发送cookie
$ curl --cookie "name=xxx" www.example.com
 
//添加头信息,自行增加一个头信息。'--header' 或者 '-H' 参数就可以起到这个作用
$ curl --header "Content-Type:application/json" http://example.com
 
 
//提交文件作为请求信息 使用 '@文件名' 请求
$ curl -X POST -H "Content-Type: text/xml" -d @denglibing.txt http://example.com
 
//denglibing.txt:
11622695,D58C6A25-C683-47D6-A18C-B7741284F632

二、实例

denglibingdeMacBook-Pro-4:~ denglibing$ curl https://api.github.com/users
[
  {
    "login""mojombo",
    "id": 1,
    "avatar_url""https://avatars3.githubusercontent.com/u/1?v=3",
    "gravatar_id""",
    "url""https://api.github.com/users/mojombo",
    "html_url""https://github.com/mojombo",
    "followers_url""https://api.github.com/users/mojombo/followers",
    "following_url""https://api.github.com/users/mojombo/following{/other_user}",
    "gists_url""https://api.github.com/users/mojombo/gists{/gist_id}",
    "starred_url""https://api.github.com/users/mojombo/starred{/owner}{/repo}",
    "subscriptions_url""https://api.github.com/users/mojombo/subscriptions",
    "organizations_url""https://api.github.com/users/mojombo/orgs",
    "repos_url""https://api.github.com/users/mojombo/repos",
    "events_url""https://api.github.com/users/mojombo/events{/privacy}",
    "received_events_url""https://api.github.com/users/mojombo/received_events",
    "type""User",
    "site_admin"false
  }
]

当然,既然这些请求是在命令行中执行,完全可以写成shell脚本,来处理一系列的工作,比如多个请求,而shell脚本在Mac中,可以使用定时任务触发,进而完成一系列的自动化工作。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部