使用HTTPie(一种使用Python编写的易于使用的命令行工具)调试API客户端。
HTTPie是易于使用且易于升级的HTTP客户端。 发音为“ aitch-tee-tee-pie”并以http身份运行,它是用Python编写的用于访问网络的命令行工具。
由于此操作方法是关于HTTP客户端的,因此需要使用HTTP服务器来进行尝试。 在这种情况下,它是httpbin.org,这是一个简单的开放源代码HTTP请求和响应服务。 httpbin.org网站是测试Web API客户端以及仔细管理和显示请求和响应中的详细信息的强大方法,但是现在我们将重点介绍HTTPie的功能。
你可能听说过古老的Wget或较新的cURL工具,这些工具可让你从命令行访问Web。 它们被编写用于访问网站,而HTTPie用于访问Web APIs。
网站请求被设计为介于计算机和正在阅读并对其所见内容做出响应的最终用户之间。 这并不太取决于结构化的响应。 但是,API请求在两台计算机之间进行结构化调用。 人不是图片的一部分,HTTPie这样的命令行工具的参数可以有效地处理此问题。
有几种安装HTTPie的方法。 无论使用brew,apt,yum还是dnf,你都可以将其作为软件包管理器的软件包获得。 但是,如果配置了virtualenvwrapper,则可以自己安装:
在虚拟环境内部直接为该命令添加http别名,即使虚拟环境未处于活动状态,你也可以运行它。 可以将alias命令放在.bash_profile或.bashrc中,以便使用以下命令升级HTTPie:
HTTPie可以简化查询和测试API。 上面使用了运行它的一个选项“-b”(也称为“--body”)。 如果没有它,HTTPie将默认打印整个响应,包括标题:
这在调试API服务时至关重要,因为在headers中发送了大量信息。 例如,查看发送哪些cookie通常很重要。 Httpbin.org提供了用于通过URL路径设置cookie(出于测试目的)的选项。 下面将一个名为“opensource”的cookie设置为awesome值:
注意“Set-Cookie:opensource = awesome; 路径= /”header。 这表明您期望设置的cookie已正确设置,并带有“/”路径。 另请注意,即使你获得了302重定向,http也没有遵循它。 如果要遵循重定向,则需要使用“--follow”标志明确要求它:
但是现在你看不到原始的Set-Cookie header。 为了查看中间答复,需要使用“--all”:
打印body有些无趣,因为你对Cookie最感兴趣。 如果要查看中间请求的header,但body来自最终请求,请执行以下操作:
你可以使用“--print”精确控制要打印的内容,并使用“--history-print”覆盖用于中间请求的内容。
有时,主体是非文本的,需要将其发送到可以由其他应用程序打开的文件中:
为了获得正确的图像,需要将其保存到文件中:
试试吧! 图片是很可爱的。
你还可以发送特定的标题。 这对于需要非标准header的自定义Web API很有用:
最后,如果要发送JSON字段(尽管可以指定确切的内容),对于许多嵌套较少的输入,可以使用快捷方式:
下次调试Web API(无论是你自己的还是其他人的Web API)时,请放下cURL并访问HTTPie(Web API的命令行客户端)。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。