13

HTTP 接口调试利器!4.8 万 Star 的 HTTP 命令行客户端

 3 years ago
source link: https://mp.weixin.qq.com/s/S3C7xxubmUnMIP4zGilzzg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【导语】: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

执行结果为:

aARFFze.png!mobile

2、 这行命令表示,向地址httpbin.org以表单的方式发送POST请求,-f选项表示表单格式提交数据。  

http -f POST httpbin.org/post hello=World

执行结果为:

ANNFBvE.png!mobile

3、这行命令表示,向地址httpbin.org发送GET请求,-v表示输出整个HTTP请求响应交换的数据(也有其他选项,比如—headers,-h仅打印响应头,--body,-b仅打印响应数据)。如果没有显式指明请求方法,当没有发送数据时,默认为GET方法,当有发送数据时,默认为POST方法。

http -v httpbin.org/get

执行结果为:

zARf6n7.png!mobile

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:'

执行过程为:

EVB3y2v.png!mobile

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,其命令和选项都更加友好,请各位参考官方文档,自己去尝试吧。

- EOF - 

以上就是这个开源项目的介绍。如果觉得这个项目不错,欢迎转发推荐给更多人。

zAvAjmM.jpg!mobile

分享、点赞和在看

支持我们分享更多优秀开源项目,谢谢!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK