网站搜索

HTTPie - 类似于 Curl 和 Wget 命令的现代 HTTP 客户端


HTTPie(发音为 aitch-tee-tee-pie)是一个用 Python 编写的类似 cURL 的、现代的、用户友好的、跨平台的命令行 HTTP 客户端。它旨在使 CLI 与 Web 服务的交互尽可能简单且用户友好。

它有一个简单的 http 命令,使用户能够使用简单自然的语法发送任意 HTTP 请求。它主要用于测试、无故障调试以及主要与 HTTP 服务器、Web 服务和 RESTful API 交互。

  • HTTPie 具有直观的 UI 并支持 JSON。
  • 富有表现力且直观的命令语法。
  • 语法突出显示、格式化和彩色终端输出。
  • HTTPS、代理和身份验证支持。
  • 支持表单和文件上传。
  • 支持任意请求数据和标头。
  • 类似 Wget 的下载和扩展。
  • 支持 ython 2.7 和 3.x。

在本文中,我们将通过一些基本示例在 Linux 中展示如何安装和使用 httpie。

如何在 Linux 中安装和使用 HTTPie

大多数 Linux 发行版都提供了 HTTPie 软件包,可以使用默认的系统软件包管理器轻松安装,例如:

apt-get install httpie  [On Debian/Ubuntu]
dnf install httpie      [On Fedora]
yum install httpie      [On CentOS/RHEL]
pacman -S httpie        [On Arch Linux]

安装后,使用 httpie 的语法为:

http [options] [METHOD] URL [ITEM [ITEM]]

httpie 最基本的用法是为其提供一个 URL 作为参数:

http example.com

现在让我们通过示例来了解 httpie 命令的一些基本用法。

发送 HTTP 方法

您可以在请求中发送HTTP方法,例如我们将发送GET方法,该方法用于向指定资源请求数据。请注意,HTTP 方法的名称位于 URL 参数之前。

http GET tecmint.lan

上传一个文件

此示例演示如何使用输入重定向将文件上传到transfer.sh。

http https://transfer.sh < file.txt

下载文件

您可以下载如图所示的文件。

http https://transfer.sh/Vq3Kg/file.txt > file.txt		#using output redirection
OR
http --download https://transfer.sh/Vq3Kg/file.txt  	        #using wget format

提交表格

您还可以将数据提交到如图所示的表单。

http --form POST tecmint.lan date='Hello World'

查看请求详细信息

例如,要查看正在发送的请求,请使用 -v 选项。

http -v --form POST tecmint.lan date='Hello World'

基本 HTTP 身份验证

HTTPie 还支持来自 CLI 的基本 HTTP 身份验证,格式如下:

http -a username:password http://tecmint.lan/admin/

自定义 HTTP 标头

您还可以使用 Header:Value 表示法定义自定义 HTTP 标头。我们可以使用以下 URL 进行测试,该 URL 返回标头。在这里,我们定义了一个名为“strong>TEST 1.0”的自定义用户代理:

http GET https://httpbin.org/headers User-Agent:'TEST 1.0'

通过运行查看使用选项的完整列表。

http --help
OR
man  ttp

您可以从 HTTPie Github 存储库找到更多使用示例:https://github.com/jakubroztocil/httpie。

HTTPie 是一个类似 cURL 的、现代的、用户友好的命令行 HTTP 客户端,具有简单自然的语法,并显示彩色输出。在本文中,我们展示了如何在 Linux 中安装和使用 httpie。如果您有任何疑问,请通过下面的评论表与我们联系。