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

HTTPie是一个类似cURL的跨平台命令行HTTP客户端,具有直观的UI,JSON支持,语法突出显示,类似wget的下载,插件等。

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

HTTPie  - 命令行HTTP客户端

HTTPie - 命令行HTTP客户端

它有一个简单的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用法

基本HTTPie用法

现在让我们看一下httpie命令的一些基本用法和示例。

发送HTTP方法

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

$ http GET howtoing.lan
发送GET HTTP方法

发送GET HTTP方法

上传一个文件

此示例显示如何使用输入重定向将文件上载到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 howtoing.lan date='Hello World'

查看请求详情

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

$ http -v --form POST howtoing.lan date='Hello World'
查看HTTP请求详细信息

查看HTTP请求详细信息

基本HTTP身份验证

HTTPie还支持以下形式从CLI进行基本HTTP身份验证:

$ http -a username:password http://howtoing.lan/admin/

自定义HTTP标头

您还可以使用标题:值表示法定义自定义HTTP标 我们可以使用以下URL来测试它,该URL返回标头。 在这里,我们定义了一个名为'strong> TEST 1.0'的自定义User-Agent:

$ http GET https://httpbin.org/headers User-Agent:'TEST 1.0'
自定义HTTP标头

自定义HTTP标头

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

$ http --help
OR
$ man  ttp

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

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