logo
当前位置:首 页 > 编程技术 >后端开发 >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,其命令和选项都更加友好,请各位参考官方文档,自己去尝试吧。

– EOF – 

说说梦想,谈谈感悟 ,聊聊技术,有啥要说的来github留言吧 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3