httpie-Linux上的Curl替代HTTP命令行客户端
在本教程中,将介绍httpie,它是现代命令行HTTP客户端,也是curl的替代工具。
httpie是Jakub Roztocil的GitHub项目,已从Github上受益。
httpie工具被视为现代的命令行http客户端,它与Web服务进行CLI交互,并提供http命令,该命令允许使用简单自然的语法发送任意HTTP请求,并显示彩色输出。
它提供了一些功能,例如内置JSON,HTTPS,语法着色,代理,身份验证,持久性会话,对Python(2.6、2.7和3.x)的良好支持以及我们可以发现的其他功能。
1)安装httpie
默认情况下,httpie存在于Linux系统信息库中,可以通过软件包直接安装
# yum install httpie Loaded plugins: fastestmirror base | 3.6 kB 00:00:00 epel/x86_64/metalink | 13 kB 00:00:00 epel | 4.3 kB 00:00:00 Dependencies Resolved ====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: python2-httpie noarch 0.9.4-1.el7 epel 100 k Installing for dependencies: jbigkit-libs x86_64 2.0-11.el7 base 46 k libtiff x86_64 4.0.3-27.el7_3 base 170 k libwebp x86_64 0.3.0-7.el7 base 170 k python-chardet noarch 2.2.1-1.el7_1 base 227 k Installed: python2-httpie.noarch 0:0.9.4-1.el7 Dependency Installed: jbigkit-libs.x86_64 0:2.0-11.el7 libtiff.x86_64 0:4.0.3-27.el7_3 libwebp.x86_64 0:0.3.0-7.el7 python-chardet.noarch 0:2.2.1-1.el7_1 python-pillow.x86_64 0:2.0.0-19.gitd1c6db8.el7 python-pygments.noarch 0:1.4-10.el7 python-requests.noarch 0:2.6.0-1.el7_1 python-six.noarch 0:1.9.0-2.el7 python-urllib3.noarch 0:1.10.2-3.el7 Complete!
2)如何使用httpie
现在我们已经安装了httpie,我们必须保留以下语法。
http [flags] [METHOD] URL [ITEM [ITEM]]
我们可以通过help命令看到如何使用它
# http --help usage: http [--json] [--form] [--pretty {all,colors,format,none}] [--style STYLE] [--print WHAT] [--headers] [--body] [--verbose] [--all] [--history-print WHAT] [--stream] [--output FILE] [--download] [--continue] [--session SESSION_NAME_OR_PATH | --session-read-only SESSION_NAME_OR_PATH] [--auth USER[:PASS]] [--auth-type {basic,digest}] [--proxy PROTOCOL:PROXY_URL] [--follow] [--max-redirects MAX_REDIRECTS] [--timeout SECONDS] [--check-status] [--verify VERIFY] [--ssl {ssl2.3,ssl3,tls1,tls1.1,tls1.2}] [--cert CERT] [--cert-key CERT_KEY] [--ignore-stdin] [--help] [--version] [--traceback] [--debug] [METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]] HTTPie - a CLI, cURL-like tool for humans. <http://httpie.org> METHOD The HTTP method to be used for the request (GET, POST, PUT, DELETE, ...). This argument can be omitted in which case HTTPie will use POST if there is some data to be sent, otherwise GET: $http example.org # => GET $http example.org hello=world # => POST
必需的参数是URL,以便使用命令。
例如,我们可以使用httpie直接通过终端在上发布注释,如下所示:
# http -a USERNAME POST https://api.github.com/repos/jakubroztocil/httpie/issues/83/comments body='HTTPie is awesome! :heart:'
我们可以直接在项目的github问题发布页面上检查结果
a)请求网址
httpie的基本用法是请求URL。
# http google.com
b)下载文件
我们可以使用htppie的'--download'参数下载文件。
它用作wget命令
# http --download https://blog.theitroad.com/wp-content/uploads/2016/09/kubernetes-monitoring.jpg
在此过程中,可以使用-o参数直接重命名下载的文件,如下所示:
# http --download https://blog.theitroad.com/wp-content/uploads/2016/09/kubernetes-monitoring.jpg -o kubernetes.jpg
使用“ -o”参数时,可以使用“ -c”参数继续下载
c)验证URL
httpie通过两种方法支持身份验证:基本身份验证和摘要身份验证。
我们可以在此过程中直接在终端上插入密码,但也可以选择在过程中提示输入密码。
对于提示输入密码的基本身份验证,请执行以下操作:
# http -a alainfrancois theitroad.com http: password for [email protected]:
或者,我们可以直接使用密码,如下所示:
# http -a alainfrancois:password theitroad.com
可以将一些其他身份验证机制安装为插件,例如AWS/Amazon S3(httpie-aws-auth)或者JWTAuth(httpie-jwt-auth)。
d)创建一个会话
httpie具有支持持久会话的特殊性。
我们可以创建命名会话,匿名会话和只读会话。
我们可以为每个主机创建一个或者多个命名会话,如下所示:
# http --session=user1 -a user1:password example.org X-Foo:Bar
e)发送请求
我们可以将带有请求项的请求添加到请求中的一件事是GET参数,如下所示:
# http https://httpbin.org/get foo==bar wicked==witch
httpie是一个很棒的工具,可以完成curl的工作。