共计 1795 个字符,预计需要花费 5 分钟才能阅读完成。
【导语】:Python 实现的 HTTP 申请命令行客户端,我了解为 curl 的 Python 版本,然而提供了更敌对,更易使用的命令及选项。
简介
HTTPie 是应用 Python 实现的 HTTP 命令行工具,提供了更人性化、交互性更好的命令和选项,能够用来做测试、调试以及与 HTTP API 服务器交互,http 和 https 命令能够用来发送任意的 http 申请,应用天然简略的语法,提供格式化和色彩输入。
HTTPie 具备以下次要性能特点:
1、天然直观的语法
2、可格式化终端输入,包含色彩的辨别
3、反对 JSON
4、反对表单和文件上传
5、反对 HTTPS、代理和身份验证
6、能够发送任意申请数据
7、自定义申请头
8、会话长久化
9、相似 wget 的下载性能
10、反对 Linux、macOS 和 Windows
11、反对插件
12、欠缺的文档反对
下载安装
我的项目源码地址:
https://github.com/httpie/httpie
我的项目测试
demo:https://httpie.io/run
运行环境要求 Python3.6 版本及以上。Windows 平台上的装置需确保 setuptools 版本是最新的,应用以下命令进行装置:
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie
其余平台上的装置办法参考我的项目地址中的 readme 即可,写得很清晰。同时,HTTPie 的官网还提供了一个工具,能够间接在浏览器上执行 HTTPie 命令,用来尝鲜、测试都很不便。
简略应用
从官网的几个例子来看看 HTTPie 的用法。
1、这行命令示意,向地址 httpbin.org 发送 PUT 申请,自定义申请头为 X -API-Token:123,申请数据格式为 JSON,具体的键值为 name=John。从这个例子能够看得出,http 命令前面追随申请办法(PUT、DELETE、POST 等),自定义的申请头用 XX:YY 的格局示意,JSON 数据用 XX=YY 示意。
http PUT httpbin.org/put X-API-Token:123 name=John
执行后果为:
2、这行命令示意,向地址 httpbin.org 以表单的形式发送 POST 申请,- f 选项示意表单格局提交数据。
http -f POST httpbin.org/post hello=World
执行后果为:
3、这行命令示意,向地址 httpbin.org 发送 GET 申请,- v 示意输入整个 HTTP 申请响应替换的数据(也有其余选项,比方—headers,- h 仅打印响应头,–body,- b 仅打印响应数据)。如果没有显式指明申请办法,当没有发送数据时,默认为 GET 办法,当有发送数据时,默认为 POST 办法。
http -v httpbin.org/get
执行后果为:
4、这行命令示意,向指标地址发送 POST 申请。咱们晓得 github 是须要登录认证的,这也是 -a(–auth)这个选项的作用,- a 前面紧跟着用户名,在上面命令执行的过程中,会交互式地要求你输出明码。
http -a USERNAME POST https://api.github.com/repos/httpie/httpie/issues/83/comments body='HTTPie is awesome! :heart:'
执行过程为:
5、这行命令示意,向地址 httpbin.org 上传文件 data.json,应用了重定向符号作为文件输出。
http httpbin.org/post < files/data.json
相应地,下载文件并重定向到本地保留的例子如下:
http httpbin.org/image/png > image.png
以上就是官网提供的几个简略例子,然而 HTTPie 所反对的性能远远不止这些,比方 mutipart/form-data 的文件上传、HTTP 代理转发、分块传输、HTTPS 的证书验证、指定 SSL 版本、格式化输入等许许多多罕用、好用的性能,对于常常须要调试 HTTP 网络的同学来说,这相对是一个好工具,相比 curl,其命令和选项都更加敌对,请各位参考官网文档,本人去尝试吧。
开源前哨
日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。