人性化的HTTP命令行工具——HTTPie
Httpie 是什么
Httpie (aych-tee-tee-pie)是一个 HTTP 的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。你可以用它很方便的用 http 的命令调试接口,最常用的应该就是 GET 和 POST 了。
举个简单形象的例子,如果有一家宠物店卖动物口粮,比如猫粮狗粮,那么出售粮食就是一个接口,来的是猫就卖猫粮,来的是狗卖狗粮,以后来个什么鸡鸭鱼之类的只要修改一下这个出售粮食的方法即可。
如果没有接口,那么就要写好对猫怎么做,对狗怎么做,而且以后对鸡鸭鱼这些来了还要重新写对鸡怎么做等等等等……简而言之,接口可以让程序便于变化。
最终的目的就是使接口稳定,没有 bug 。一般来说除了最基础的正常使用功能之外,还需要测试临界时的情况,比如说对处于可输入数据范围边界上的数据是否能够处理;还有性能测试,这部分就是使用资源的情况,接口响应时间等。
特点:
1、直观的语法
2、格式化和色彩化的终端输出
3、内置 JSON 支持
4、支持上传表单和文件
5、HTTPS、代理和认证支持
6、支持任意请求数据
7、自定义标题
8、持久性会话
9、类 Wget 下载
10、支持 Python 2.6, 2.7 和 3.x
11、支持 Linux, Mac OS X 和 Windows
12、插件
13、文档
14、测试覆盖率
我们首先用一张图来进行比对 Httpie 与 curl :

我们可以通过添加之前的用户名和密码来发送成功请求:

curl 的使用方法
curl -X METHOD -H HEADER -i
后面的-i是表示显示返回消息的头部,如果你使用 cURL 访问 OpenStack,那么这个选项在获取 UUID 类型的 token 时必不可少。然后创建请求消息体,在使用 curl 来发送消息,会返回 json 消息体,但返回的 json 消息体比较混乱,不便阅读,如果想从返回的 json 消息体中获取一下信息是比较困难的。

HTTPie 基于 python 编写,内部使用了 Requests 和 Pygments 库。
HTTPie 的用法要比 cURL 直观很多,没有那么多选项,基本上心里怎么想就怎么写,默认输入和输出都是 json 格式 (而 cURL 必须要指定 -H “Content-Type: application/json”)。我们同样实现上面获取 token 的功能,效果如下:
很明显的能看出,使用 Httpie 所得到的结果结构的清晰明了,它对返回的结果自动做了高亮和格式化。
更多:
cURL vs HTTPie on the Command Line for HTTP APIs:
https://www.ctl.io/developers/blog/post/curl-vs-httpie-http-apis\
原文来自:https://openingsource.org/2203/
本文地址:https://www.linuxprobe.com/http-httpie-command.html编辑:杨斌斌,审核员:逄增宝
本文原创地址:https://www.linuxprobe.com/http-httpie-command.html
人性化的HTTP命令行工具——HTTPie的更多相关文章
- python笔记42-http请求命令行工具(httpie)
前言 通常我们需要快速的测试某个接口通不通,一般linux上用curl去发http请求,但是这个命令行工具语法有点复杂了,不够直观. python有一个给人类使用的requests库,非常的简单方便. ...
- 屹今为止最好用的HTTP客户端命令行工具-接口调试神器HTTPie
一.思考❓❔ 1.你用过哪些http客户端调试工具? Postman 不够灵活 需要打开客户端, 麻烦 学习成本高 Jmeter 臃肿 麻烦 学习成本高 curl 参数多, 记不住 不够灵活 主要在L ...
- Android命令行工具logcat详细用法!
logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明! 本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB% ...
- windows下的命令行工具babun
什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...
- nodejs 编写(添加时间戳)命令行工具 timestamp
Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...
- 如何用Node编写命令行工具
0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...
- Orchard中的命令行工具
在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...
随机推荐
- 02 c++的封装性 (构造和析构)
封装性: 关键字:public private protected 破坏封装:友元函数 friend 实现数据的隐藏:class类 默认是私有,结构体默认是公有. 类和对象:(定义类的注意事项) 在类 ...
- 为什么引入Memcached?
刚memcached了解学习,一直是处于一个懵懂的状态,先是对memcached进行了一个了解,但我们为什么要在ITOO中引入memcached呢?当问我的时候当时自己脑子中打了一个大大的 这就必须去 ...
- Eclipse下,Maven+JRebel安装破解手记
Java开发中,Maven已经是标配,使用JRebel能大大地提高工作效率,特别是在Web开发中,不用重启tomcat,大大地提高了工作效率. 1.前提条件 安装JDK 8 安装eclipse, ec ...
- Mycat简单配置
最近项目中需要用到Mycat来作为Mysql的分表中间件.所以稍微研究了一下. Mycat使用起来是非常方便,而且最重要的是配置简单,稍显麻烦的就是需要对库中的每一个表都进行配置. 记录一下最重要的几 ...
- epoll版http服务器
epoll是事件通知方式接收数据,效率比轮询要高 代码: import socket import re import select def client_server(new_client,recv ...
- JS+rem,移动端适配
window.onresize = function () { setHtmlFz(); } setHtmlFz(); function setHtmlFz() { // 基础值 var baseVa ...
- python - alipay sdk 使用 及 注意点
一. 在 点击跳转 这里拿到自己的 appid 和 支付宝公钥 , 如果想要得到 支付宝的公钥 就需要获取 应用的公钥,具体获取方式 : 获取应用公钥和私钥 a. 应用私钥和支付宝公钥 获取 ...
- 【贪心】Stripies POJ 1862
题目描述:http://poj.org/problem?id=1862 题目大意:你有n个数要合并,每两个数x,y合并后得到2*sqrt(x*y).求最后留下的一个数的最小值. 每合并一次,就会有数被 ...
- java.security KeyPairGenerator
KeyPairGenerator 类用于生成公钥和私钥对.密钥对生成器是使用 getInstance 工厂方法(返回一个给定类的实例的静态方法)构造的. 特定算法的密钥对生成器可以创建能够与此算法一起 ...
- (尚010)Vue列表的搜素和排序
1.test010.html <!DOCTYPE html><html lang="en"><head> <meta charset=&q ...