专栏首页Opensource翻译专栏API测试--HTTPie入门【Linux-Command line】

API测试--HTTPie入门【Linux-Command line】

使用HTTPie(一种使用Python编写的易于使用的命令行工具)调试API客户端。

图片来源:Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0

HTTPie是易于使用且易于升级的HTTP客户端。 发音为“ aitch-tee-tee-pie”并以http身份运行,它是用Python编写的用于访问网络的命令行工具。

由于此操作方法是关于HTTP客户端的,因此需要使用HTTP服务器来进行尝试。 在这种情况下,它是httpbin.org,这是一个简单的开放源代码HTTP请求和响应服务。 httpbin.org网站是测试Web API客户端以及仔细管理和显示请求和响应中的详细信息的强大方法,但是现在我们将重点介绍HTTPie的功能。

Wget和cURL的替代方法

你可能听说过古老的Wget或较新的cURL工具,这些工具可让你从命令行访问Web。 它们被编写用于访问网站,而HTTPie用于访问Web APIs

网站请求被设计为介于计算机和正在阅读并对其所见内容做出响应的最终用户之间。 这并不太取决于结构化的响应。 但是,API请求在两台计算机之间进行结构化调用。 人不是图片的一部分,HTTPie这样的命令行工具的参数可以有效地处理此问题。

安装HTTPie

有几种安装HTTPie的方法。 无论使用brew,apt,yum还是dnf,你都可以将其作为软件包管理器的软件包获得。 但是,如果配置了virtualenvwrapper,则可以自己安装:

在虚拟环境内部直接为该命令添加http别名,即使虚拟环境未处于活动状态,你也可以运行它。 可以将alias命令放在.bash_profile或.bashrc中,以便使用以下命令升级HTTPie:

使用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”覆盖用于中间请求的内容。

使用HTTPie下载二进制文件

有时,主体是非文本的,需要将其发送到可以由其他应用程序打开的文件中:

为了获得正确的图像,需要将其保存到文件中:

试试吧! 图片是很可爱的。

使用HTTPie发送自定义请求

你还可以发送特定的标题。 这对于需要非标准header的自定义Web API很有用:

最后,如果要发送JSON字段(尽管可以指定确切的内容),对于许多嵌套较少的输入,可以使用快捷方式:

下次调试Web API(无论是你自己的还是其他人的Web API)时,请放下cURL并访问HTTPie(Web API的命令行客户端)。

原文链接:https://opensource.com/article/19/8/getting-started-httpie

原文作者:Moshe Zadka(Community Moderator)

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HTTPie 工具使用入门

    阳光岛主
  • 比Postman更方便的接口调试工具HTTPie

    zx钟
  • Linux tac命令入门【Linux-Command line】

    tac命令本质上是cat命令,但其目的是反向连接文件。 像cat一样,如果没有提供输出文件,它也具有方便的后备模式,可打印到标准输出(STDOUT),使其成为比...

    QRosie
  • 25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?

    众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 ...

    iMike
  • python flask web 博客实例 restful api 5

    |-flasky |-app/ |-api_1_0 |-init.py |-users.py |-posts.py |-comments.py |...

    用户5760343
  • 25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?

    「运维之美」是一个有情怀、有态度,专注于 Linux 运维相关技术文章分享的公众号。公众号致力于为广大运维工作者分享各类技术文章和发布最前沿的科技信息。公众号的...

    Albert陈凯
  • 20行代码爬取Github上Star最多的Python项目

    传说Github上有一种叫做star的宝藏,海贼王罗杰临刑前说将所有的star都放到了那里,伟大Python的终点——机器学习。无数人为此奔向机器学习的大坑。从...

    HuangWeiAI
  • python笔记42-http请求命令行工具(httpie)

    通常我们需要快速的测试某个接口通不通,一般linux上用curl去发http请求,但是这个命令行工具语法有点复杂了,不够直观。 python有一个给人类使用的r...

    上海-悠悠
  • 虚拟环境---python3

    (1)virtualenv -p python3 flasky                ---创建虚拟环境

    用户2337871

扫码关注云+社区

领取腾讯云代金券