我觉得用curl构造HTTP请求可能就是这样一个技巧,所以下面是一些curl练习作为实验!——朱莉娅·埃文斯(作者)
最近,我对人们如何学习新事物感兴趣。我正在读Kathy Sierra的优秀著作《Badass:让用户变得了不起》,其中讨论了“刻意练习”的想法。这个想法就是你找到一个你可以在三个45分钟的课程中学到的小技能,并集中精力学习这个小技能。所以,作为一个练习,我试着考虑一个我可以在三个45分钟的课程中学到的计算机技能。
我觉得用curl构造HTTP请求可能就是这样一个技巧,所以下面是一些curl练习作为实验!
什么是 curl ?
Curl是一个用于构造HTTP请求的命令行工具。我喜欢使用curl,因为它可以很容易地测试服务器或API的行为是否符合预期,但它会让你在第一次接触它时感到有些困惑!
以下是解释curl常用命令行参数的漫画(在《我的一口大小网络杂志》第6页)。
熟能生巧
对于任何一个命令行工具,我觉得熟练使用都是很有帮助的。能够只输入必要的命令是很棒的。例如,我最近在测试Gumroad API,我只需要输入:
科尔https://api.gumroad.com/v2/sales \-d & # 34;access _ token = & lt秘密& gt"\-X GET-d & # 34;before = 2016-09-03 & # 34;您可以从命令行获得想要的结果。
21 个 curl 练习
这些练习用于理解如何使用curl构造不同种类的HTTP请求。它们是故意重复的,基本上包含了我需要curl做的任何事情。
为简单起见,我们将向https://httpbin.org发出一系列HTTP请求。httpbin将接受HTTP请求,然后在响应中回显您发起的HTTP请求。
请求 https://httpbin.org请求 https://httpbin.org/anything ,它将会解析你发起的请求,并且在响应中回显。curl 默认发起的是 GET 请求向 https://httpbin.org/anything 发起 GET 请求向 https://httpbin.org/anything 发起 GET 请求,但是这次需要添加一些查询参数(设置 value=panda)请求 Google 的 robots.txt 文件 ( www.google.com/robots.txt )向 https://httpbin.org/anything 发起 GET 请求,并且设置请求头为 User-Agent: elephant向 https://httpbin.org/anything 发起 DELETE 请求请求 https://httpbin.org/anything 并获取响应头信息向 https://httpbin.com/anything 发起请求体为 JSON {"value": "panda"} 的 POST 请求发起与上一次相同的 POST 请求,但是这次要把请求头中的 Content-Type 字段设置成 application/json(因为 POST 请求需要一个与请求体相匹配的 Content-Type 请求头字段)。查看响应体中的 json 字段,对比上一次得到的响应体向 https://httpbin.org/anything 发起 GET 请求,并且在请求头中设置 Accept-Encoding: gzip(将会发生什么?为什么会这样?)将一些 JSON 放在文件中,然后向 https://httpbin.org/anything 发起请求体为该文件的 POST 请求设置请求头为 Accept: image/png 并且向 https://httpbin.org/image 发起请求,将输出保存为 PNG 文件,然后使用图片浏览器打开。尝试使用不同的 Accept: 字段去请求此 URL向 https://httpbin.org/anything 发起 PUT 请求请求 https://httpbin.org/image/jpeg 并保存为文件,然后使用你的图片编辑器打开这个文件请求 https://www.twitter.com ,你将会得到空的响应。让 curl 显示出响应头信息,并尝试找出响应内容为空的原因向 https://httpbin.org/anything 发起任意的请求,同时设置一些无意义的请求头(例如:panda: elephant)请求 https://httpbin.org/status/404 和 https://httpbin.org/status/200 ,然后再次请求它们并且让 curl 显示响应头信息请求 https://httpbin.org/anything 并且设置用户名和密码(使用 -u username:password)设置 Accept-Language: es-ES 的请求头用以下载 Twitter 的西班牙语主页 ( https://twitter.com )使用 curl 向 Stripe API 发起请求(请查看 https://stripe.com/docs/development 了解如何使用,他们会给你一个测试用的 API key)。尝试向 https://httpbin.org/anything 发起相同的请求
途经:https://jvns.ca/blog/2019/08/27/curl-exercises/
作者:Julia Evans题目:lujun9972译者:hanwckf校对:wxy
本文由LCTT原创,并由Linux中国提供荣誉。
点击“了解更多”可访问文内链接
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。