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

- EOF -


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

分享、点赞和在看

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

curl put方法 测试http_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!相关推荐

  1. body curl命令测试post_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!

    [导语]:Python实现的HTTP请求命令行客户端,我理解为curl的Python版本,但是提供了更友好,更易使用的命令及选项. 简介 HTTPie是使用Python实现的HTTP命令行工具,提供了 ...

  2. 接口调试利器Postman

    Postman是一款功能强大的http接口测试工具,使用Postman可以完成http各种请求的功能测试.作为服务器端开发人员,当一个业务功能开发完毕后,应该用Postman进行功能测试. 1.请自行 ...

  3. 微信“公众平台测试账号”接口调试指南

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 实际开发时请自行参阅官方文档:http://mp.weixin.qq. ...

  4. 接口调试利器:Postman

    Postman是一款功能强大的http接口测试工具,使用Postman可以完成http各种请求的功能测试.作为 服务器端开发人员,当一个业务功能开发完毕后,应该用Postman进行功能测试. 1.请自 ...

  5. 作为测试和开发调试的工具,你真的了解浏览器开发工具DevTools吗?

    ChromeDevtools是Web测试时每天都要用的工具,它提供了很多调试功能,可以帮助我们更好的定位问题.而我们平时使用的功能只是它全部功能的子集,很多功能并没用到过. 作为高频使用的工具,还是有 ...

  6. [转]PDB——Python调试利器详解

    python 2.7 pdb官方文档:https://docs.python.org/2.7/library/pdb.html pdb是ptyhon内置的一个调试库,是调试python代码的好帮手,本 ...

  7. pdb python 命令_PDB——Python调试利器详解

    pdb是ptyhon内置的一个调试库,是调试python代码的好帮手,本文是对其用法的详细介绍. QuickStart 待调试的代码内容 文件名:test.py: # coding:utf-8 imp ...

  8. 使用GDB命令行调试器调试C/C++程序

    编译自:http://xmodulo.com/gdb-command-line-debugger.html 作者: Adrien Brochard 原创:LCTT https://linux.cn/a ...

  9. C# winform 窗体接收命令行参数自动登录进行系统,模拟600个WCF客户端的并发压力测试...

    我们想要达到的目的是模拟600个客户端的消息提醒功能,当然我们没有600个电脑可以拿来测试,我们只有4-5台电脑可以用来测试,那我们就想办法在一个电脑上执行100来个客户端,用不通的帐户登录,模拟60 ...

最新文章

  1. python过去日期_利用python获取当前日期前后N天或N月日期的方法示例
  2. python可以从事什么工作-对话极客晨星:现在学Python 长大可以从事什么工作?...
  3. python文件存储过程_python调用MySql存储过程
  4. I春秋——web Write up(三)
  5. 马尔可夫Markov决策过程 MDP、马尔可夫奖励过程MRP
  6. 知识点:Mysql 数据库索引优化实战(4)
  7. 三个版本Eclipse区别
  8. 易语言修改虚拟机硬盘id_易语言本地虚拟机源码
  9. 软件开发过程中的一些感悟
  10. 史上最详细蝉道开源安装步骤。
  11. ceph osd pg 状态介绍
  12. 深入浅出实现Electron音量调节功能
  13. 【给初学者,大佬见笑】100%成功UEFI安装双硬盘单系统Ubuntu最合理分区安装指南+ubuntu20.04安装
  14. TS实现Base64的加密解密
  15. 高价拍下巴菲特午餐的90后孙宇晨是谁?
  16. Linux配置SSH服务器
  17. ubuntu20.04 部署原生态openstack Victoria版的详细步骤
  18. 快速学习-RocketMQ-“Request-Reply”特性
  19. 滴滴和中国优步合并:滴滴才是唯一赢家?
  20. java斗地主发牌代码_[Java源码]扑克牌——斗地主发牌实现

热门文章

  1. 初学者看看PHP explode() 函数 第6篇
  2. java log输出到文件路径_Java - 配置log4j的日志文件路径 (附-获取当前类路径的多种方法)...
  3. hive与依赖环境的交互
  4. oracle最大实例数,【ORA-16196】一个实例在其生命周期里最多只能装载和打开一个数据库...
  5. 使用JavaScript的图像识别游戏
  6. springboot公共模块打包_解决SpringBoot多模块发布时99%的问题?
  7. linux定位哪个进程出发重启,定位Linux下定位进程被谁KILL
  8. 本地tomcat启动war包_「shell脚本」懒人运维之自动升级tomcat应用(war包)
  9. python改变列的数据类型_python – Pandas:更改列的数据类型
  10. 正则过滤符号_多角度理解正则项