您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

21 个 curl 命令练习

时间:2019-12-05 13:43:29  来源:  作者:
21 个 curl 命令练习

 

我认为使用 curl 构造 HTTP 请求也许就是这样的一项技能,所以这里有一些 curl 练习作为实验!-- Julia Evans(作者)

最近,我对人们如何学习新事物感兴趣。我正在读 Kathy Sierra 的好书《 Badass: Making Users Awesome 》,它探讨了有关“刻意练习”的想法。这个想法是,你找到一个可以用三节 45 分钟课程内能够学会的小技能,并专注于学习这项小技能。因此,作为一项练习,我尝试考虑一项能够在三节 45 分钟课程内学会的计算机技能。

我认为使用 curl 构造 HTTP 请求也许就是这样的一项技能,所以这里有一些 curl 练习作为实验!

什么是 curl ?

curl 是用于构造 HTTP 请求的命令行工具。我喜欢使用 curl,因为它能够很轻松地测试服务器或 API 的行为是否符合预期,但是刚开始接触它的时候会让你感到一些困惑!

下面是一幅解释 curl 常用命令行参数的漫画 (在我的 Bite Size Networking 杂志的第 6 页)。

21 个 curl 命令练习

 

熟能生巧

对于任何命令行工具,我认为熟练使用是很有帮助的,能够做到只输入必要的命令真是太好了。例如,最近我在测试 Gumroad API,我只需要输入:

curl https://api.gumroad.com/v2/sales 
 -d "access_token=<SECRET>" 
 -X GET -d "before=2016-09-03"

就能从命令行中得到想要的结果。

21 个 curl 练习

这些练习是用来理解如何使用 curl 构造不同种类的 HTTP 请求的,它们是故意有点重复的,基本上包含了我需要 curl 做的任何事情。

为了简单起见,我们将对 https://httpbin.org 发起一系列 HTTP 请求,httpbin 接受 HTTP 请求,然后在响应中回显你所发起的 HTTP 请求。

  1. 请求 https://httpbin.org
  2. 请求 https://httpbin.org/anything ,它将会解析你发起的请求,并且在响应中回显。curl 默认发起的是 GET 请求
  3. 向 https://httpbin.org/anything 发起 GET 请求
  4. 向 https://httpbin.org/anything 发起 GET 请求,但是这次需要添加一些查询参数(设置 value=panda)
  5. 请求 google 的 robots.txt 文件 ( www.google.com/robots.txt )
  6. 向 https://httpbin.org/anything 发起 GET 请求,并且设置请求头为 User-Agent: elephant
  7. 向 https://httpbin.org/anything 发起 DELETE 请求
  8. 请求 https://httpbin.org/anything 并获取响应头信息
  9. 向 https://httpbin.com/anything 发起请求体为 JSON {"value": "panda"} 的 POST 请求
  10. 发起与上一次相同的 POST 请求,但是这次要把请求头中的 Content-Type 字段设置成 Application/json(因为 POST 请求需要一个与请求体相匹配的 Content-Type 请求头字段)。查看响应体中的 json 字段,对比上一次得到的响应体
  11. 向 https://httpbin.org/anything 发起 GET 请求,并且在请求头中设置 Accept-Encoding: gzip(将会发生什么?为什么会这样?)
  12. 将一些 JSON 放在文件中,然后向 https://httpbin.org/anything 发起请求体为该文件的 POST 请求
  13. 设置请求头为 Accept: image/png 并且向 https://httpbin.org/image 发起请求,将输出保存为 PNG 文件,然后使用图片浏览器打开。尝试使用不同的 Accept: 字段去请求此 URL
  14. 向 https://httpbin.org/anything 发起 PUT 请求
  15. 请求 https://httpbin.org/image/jpeg 并保存为文件,然后使用你的图片编辑器打开这个文件
  16. 请求 https://www.twitter.com ,你将会得到空的响应。让 curl 显示出响应头信息,并尝试找出响应内容为空的原因
  17. 向 https://httpbin.org/anything 发起任意的请求,同时设置一些无意义的请求头(例如:panda: elephant)
  18. 请求 https://httpbin.org/status/404 和 https://httpbin.org/status/200 ,然后再次请求它们并且让 curl 显示响应头信息
  19. 请求 https://httpbin.org/anything 并且设置用户名和密码(使用 -u username:password
  20. 设置 Accept-Language: es-ES 的请求头用以下载 Twitter 的西班牙语主页 ( https://twitter.com )
  21. 使用 curl 向 Stripe API 发起请求(请查看 https://stripe.com/docs/development 了解如何使用,他们会给你一个测试用的 API key)。尝试向 https://httpbin.org/anything 发起相同的请求

via: https://jvns.ca/blog/2019/08/27/curl-exercises/

作者: Julia Evans 选题: lujun9972 译者: hanwckf 校对: wxy

本文由 LCTT 原创编译, linux中国 荣誉推出



Tags:curl 命令   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
命令概要该命令设计用于在没有用户交互的情况下工作。curl 是一个工具,用于传输来自服务器或者到服务器的数据。「向服务器传输数据或者获取来自服务器的数据」可支持的协议...【详细内容】
2020-05-12  Tags: curl 命令  点击:(60)  评论:(0)  加入收藏
我认为使用 curl 构造 HTTP 请求也许就是这样的一项技能,所以这里有一些 curl 练习作为实验!-- Julia Evans(作者)最近,我对人们如何学习新事物感兴趣。我正在读 Kathy Sierra...【详细内容】
2019-12-05  Tags: curl 命令  点击:(61)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条