PRF:20190417 HTTPie - A Modern Command Line HTTP Client For Curl And Wget Alternative.md

@zgj1024
This commit is contained in:
Xingyu.Wang 2019-04-22 12:31:17 +08:00
parent a3095cb6b2
commit 760e7a79e9

View File

@ -1,38 +1,37 @@
[#]: collector: (lujun9972) [#]: collector: (lujun9972)
[#]: translator: (zgj1024) [#]: translator: (zgj1024)
[#]: reviewer: ( ) [#]: reviewer: (wxy)
[#]: publisher: ( ) [#]: publisher: ( )
[#]: url: ( ) [#]: url: ( )
[#]: subject: (HTTPie A Modern Command Line HTTP Client For Curl And Wget Alternative) [#]: subject: (HTTPie A Modern Command Line HTTP Client For Curl And Wget Alternative)
[#]: via: (https://www.2daygeek.com/httpie-curl-wget-alternative-http-client-linux/) [#]: via: (https://www.2daygeek.com/httpie-curl-wget-alternative-http-client-linux/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) [#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
HTTPie 替代 Curl 和 Wget 的现代 HTTP 命令行客户端 HTTPie替代 Curl 和 Wget 的现代 HTTP 命令行客户端
====== ======
大多数时间我们会使用 Curl 命令或是 Wget 命令下载文件或者做其他事 大多数时间我们会使用 `curl` 命令或是 `wget` 命令下载文件或者做其他事。
我们以前曾写过 **[最佳命令行下载管理器][1]** 的文章。你可以点击相应的 URL 连接来浏览这些文章。 我们以前曾写过 [最佳命令行下载管理器][1] 的文章。你可以点击相应的 URL 连接来浏览这些文章。
* **[aria2 Linux 下的多协议命令行下载工具][2]** * [aria2 Linux 下的多协议命令行下载工具][2]
* **[Axel Linux 下的轻量级命令行下载加速器][3]** * [Axel Linux 下的轻量级命令行下载加速器][3]
* **[Wget Linux 下的标准命令行下载工具][4]** * [Wget Linux 下的标准命令行下载工具][4]
* **[curl Linux 下的实用的命令行下载工具][5]** * [curl Linux 下的实用的命令行下载工具][5]
今天我们将讨论同样的话题。这个实用程序名为 HTTPie。
今天我们将讨论同样的话题。实用程序名为 HTTPie。 它是现代命令行 http 客户端,也是 `curl``wget` 命令的最佳替代品。
它是现代命令行 http 客户端也是curl和wget命令的最佳替代品。
### 什么是 HTTPie ### 什么是 HTTPie
HTTPie (发音是 aitch-tee-tee-pie) 是一个 Http 命令行客户端。 HTTPie (发音是 aitch-tee-tee-pie) 是一个 HTTP 命令行客户端。
httpie 工具是现代命令的 HTTP 客户端,它能让命令行界面与 Web 服务进行交互。 HTTPie 工具是现代的 HTTP 命令行客户端,它能通过命令行界面与 Web 服务进行交互。
他提供一个简单 Http 命令,运行使用简单而自然的语法发送任意的 HTTP 请求,并会显示彩色的输出。 它提供一个简单的 `http` 命令,允许使用简单而自然的语法发送任意的 HTTP 请求,并会显示彩色的输出。
HTTPie 能用于测试、debugging及与 HTTP 服务器交互。 HTTPie 能用于测试、调试及与 HTTP 服务器交互。
### 主要特点 ### 主要特点
@ -40,50 +39,52 @@ HTTPie 能用于测试、debugging及与 HTTP 服务器交互。
* 格式化的及彩色化的终端输出 * 格式化的及彩色化的终端输出
* 内置 JSON 支持 * 内置 JSON 支持
* 表单和文件上传 * 表单和文件上传
* HTTPS, 代理, 和认证 * HTTPS、代理和认证
* 任意请求数据 * 任意请求数据
* 自定义头部 * 自定义头部
* 持久化会话sessions * 持久化会话
* 类似 wget 的下载 * 类似 `wget` 的下载
* 支持 Python 2.7 和 3.x * 支持 Python 2.7 和 3.x
### 在 Linux 下如何安装 HTTPie ### 在 Linux 下如何安装 HTTPie
大部分 Linux 发行版都提供了系统包管理器,可以用它来安装。 大部分 Linux 发行版都提供了系统包管理器,可以用它来安装。
**`Fedora`** 系统,使用 **[DNF 命令][6]** 来安装 httpie Fedora 系统,使用 [DNF 命令][6] 来安装 httpie
``` ```
$ sudo dnf install httpie $ sudo dnf install httpie
``` ```
**`Debian/Ubuntu`** 系统, 使用 **[APT-GET 命令][7]** 或 **[APT 命令][8]** 来安装 httpie。 Debian/Ubuntu 系统,使用 [APT-GET 命令][7] 或 [APT 命令][8] 来安装 HTTPie。
``` ```
$ sudo apt install httpie $ sudo apt install httpie
``` ```
基于 **`Arch Linux`** 的系统, 使用 **[Pacman 命令][9]** 来安装 httpie。 基于 Arch Linux 的系统,使用 [Pacman 命令][9] 来安装 HTTPie。
``` ```
$ sudo pacman -S httpie $ sudo pacman -S httpie
``` ```
**`RHEL/CentOS`** 的系统, 使用 **[YUM 命令][10]** 来安装 httpie。 RHEL/CentOS 的系统,使用 [YUM 命令][10] 来安装 HTTPie。
``` ```
$ sudo yum install httpie $ sudo yum install httpie
``` ```
**`openSUSE Leap`** 系统, 使用 **[Zypper 命令][11]** 来安装 httpie。 openSUSE Leap 系统,使用 [Zypper 命令][11] 来安装 HTTPie。
``` ```
$ sudo zypper install httpie $ sudo zypper install httpie
``` ```
### 1) 如何使用 HTTPie 请求URL ### 用法
httpie 的基本用法是将网站的 URL 作为参数。 #### 如何使用 HTTPie 请求 URL
HTTPie 的基本用法是将网站的 URL 作为参数。
``` ```
# http 2daygeek.com # http 2daygeek.com
@ -99,9 +100,9 @@ Transfer-Encoding: chunked
Vary: Accept-Encoding Vary: Accept-Encoding
``` ```
### 2) 如何使用 HTTPie 下载文件 #### 如何使用 HTTPie 下载文件
你可以使用带 `--download` 参数的 HTTPie 命令下载文件。类似于 wget 命令。 你可以使用带 `--download` 参数的 HTTPie 命令下载文件。类似于 `wget` 命令。
``` ```
# http --download https://www.2daygeek.com/wp-content/uploads/2019/04/Anbox-Easy-Way-To-Run-Android-Apps-On-Linux.png # http --download https://www.2daygeek.com/wp-content/uploads/2019/04/Anbox-Easy-Way-To-Run-Android-Apps-On-Linux.png
@ -148,10 +149,11 @@ Vary: Accept-Encoding
Downloading 31.31 kB to "Anbox-1.png" Downloading 31.31 kB to "Anbox-1.png"
Done. 31.31 kB in 0.01551s (1.97 MB/s) Done. 31.31 kB in 0.01551s (1.97 MB/s)
``` ```
如何使用HTTPie恢复部分下载
### 3) 如何使用 HTTPie 恢复部分下载? #### 如何使用 HTTPie 恢复部分下载?
你可以使用带 `-c` 参数的 HTTPie 继续下载。 你可以使用带 `-c` 参数的 HTTPie 继续下载。
``` ```
# http --download --continue https://speed.hetzner.de/100MB.bin -o 100MB.bin # http --download --continue https://speed.hetzner.de/100MB.bin -o 100MB.bin
HTTP/1.1 206 Partial Content HTTP/1.1 206 Partial Content
@ -169,24 +171,24 @@ Downloading 100.00 MB to "100MB.bin"
| 24.14 % 24.14 MB 1.12 MB/s 0:01:07 ETA^C | 24.14 % 24.14 MB 1.12 MB/s 0:01:07 ETA^C
``` ```
你根据下面的输出验证是否同一个文件 你根据下面的输出验证是否同一个文件:
``` ```
[email protected]:/var/log# ls -lhtr 100MB.bin [email protected]:/var/log# ls -lhtr 100MB.bin
-rw-r--r-- 1 root root 25M Apr 9 01:33 100MB.bin -rw-r--r-- 1 root root 25M Apr 9 01:33 100MB.bin
``` ```
### 5) 如何使用 HTTPie 上传文件? #### 如何使用 HTTPie 上传文件?
你可以通过使用带有 `小于号 "<"` 的 HTTPie 命令上传文件 你可以通过使用带有小于号 `<` 的 HTTPie 命令上传文件
You can upload a file using HTTPie with the `less-than symbol "<"` symbol.
``` ```
$ http https://transfer.sh < Anbox-1.png $ http https://transfer.sh < Anbox-1.png
``` ```
### 6) 如何使用带有重定向符号">" 的 HTTPie 下载文件? #### 如何使用带有重定向符号 > 下载文件?
你可以使用带有 `重定向 ">"` 符号的 HTTPie 命令下载文件。 你可以使用带有重定向 `>` 符号的 HTTPie 命令下载文件。
``` ```
# http https://www.2daygeek.com/wp-content/uploads/2019/03/How-To-Install-And-Enable-Flatpak-Support-On-Linux-1.png > Flatpak.png # http https://www.2daygeek.com/wp-content/uploads/2019/03/How-To-Install-And-Enable-Flatpak-Support-On-Linux-1.png > Flatpak.png
@ -195,7 +197,7 @@ $ http https://transfer.sh < Anbox-1.png
-rw-r--r-- 1 root root 47K Apr 9 01:44 Flatpak.png -rw-r--r-- 1 root root 47K Apr 9 01:44 Flatpak.png
``` ```
### 7) 发送一个 HTTP GET 请求? #### 发送一个 HTTP GET 请求?
您可以在请求中发送 HTTP GET 方法。GET 方法会使用给定的 URI从给定服务器检索信息。 您可以在请求中发送 HTTP GET 方法。GET 方法会使用给定的 URI从给定服务器检索信息。
@ -214,7 +216,7 @@ Transfer-Encoding: chunked
Vary: Accept-Encoding Vary: Accept-Encoding
``` ```
### 8) 提交表单? #### 提交表单?
使用以下格式提交表单。POST 请求用于向服务器发送数据,例如客户信息、文件上传等。要使用 HTML 表单。 使用以下格式提交表单。POST 请求用于向服务器发送数据,例如客户信息、文件上传等。要使用 HTML 表单。
@ -261,24 +263,24 @@ Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding Vary: Accept-Encoding
``` ```
### 9) HTTP 认证? #### HTTP 认证?
当前支持的身份验证认证方案是基本认证Basic和摘要验证Digest 当前支持的身份验证认证方案是基本认证Basic和摘要验证Digest
The currently supported authentication schemes are Basic and Digest
基本认证 基本认证
``` ```
$ http -a username:password example.org $ http -a username:password example.org
``` ```
摘要验证 摘要验证
``` ```
$ http -A digest -a username:password example.org $ http -A digest -a username:password example.org
``` ```
提示输入密码 提示输入密码:
``` ```
$ http -a username example.org $ http -a username example.org
``` ```
@ -289,8 +291,8 @@ via: https://www.2daygeek.com/httpie-curl-wget-alternative-http-client-linux/
作者:[Magesh Maruthamuthu][a] 作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b] 选题:[lujun9972][b]
译者:[译者ID](https://github.com/zgj1024) 译者:[zgj1024](https://github.com/zgj1024)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出