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

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

执行结果为:

9e299fc0c153fb9051fcf67470acee9a.png

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

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

执行结果为:

6bb4419603d5707f83485b617f9752ad.png

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

http -v httpbin.org/get

执行结果为:

d055a8348081e5e0ceceb21178e1aa0a.png

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

执行过程为:

d0fde47814d46f35eca7497a14a178b6.png

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 - 


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

584d6184f3215f9132035be9c49b7068.png

分享、点赞和在看

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件打开特别慢_“Origin进不去、下载慢”的解决办法合集

玩儿烂橘子的游戏&#xff0c;喜闻乐见会见到下面这句话&#xff1a;呃&#xff0c;发生了些意料之外的事情。其实&#xff0c;这还挺意料之中的。▌进不去方法①&#xff1a;挂加速器。加速器挂Steam或者Origin大厅一般是免费的&#xff0c;没效果就换一个节点、模式、加速器。…

关于使用CPU缓存的一个小栗子

一、背景知识 CPU缓存&#xff08;Cache Memory&#xff09;&#xff0c;是位于CPU与内存之间的临时存储器&#xff0c;它的容量比内存小的多但是交换速度却比内存要快得多。高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾&#xff0c;因为CPU运算速度要比…

输入快捷键显示未知命令_「干货」华为VRP基础和常用命令了解一下

华为VRP系统的理解手机里面是安卓系统&#xff0c;电脑里面windows系统在我们路由器、交换机、防护墙等网络设备中他们当中的系统就是VRP系统(通用路由平台)可以理解为华为的类型交换机&#xff0c;华为类型路由器以及防火墙他们之间的命令行几乎都是一样华为设备提供丰富的功能…

2 字符串求交集_PostGIS教程十八:维数扩展的9交集模型

一、什么是维数扩展的9交集模型"维数扩展的9交集模型-Dimensionally Extended 9-Intersection Model"&#xff08;DE9IM&#xff09;是一个用于建模两个空间对象如何交互的框架。首先&#xff0c;每个空间对象都具有&#xff1a;内部&#xff08;interior)边界&#…

房子里的K2 BPM业务流程管理

房…子这件事上&#xff0c;尴尬实在太多。 ಥ_ಥ 职场新人&#xff0c;租房很尴尬&#xff1b; 未婚男女&#xff0c;婚房很尴尬&#xff1b; 有下一代的&#xff0c;学区房很尴尬&#xff1b; 耄耋之年&#xff0c;养老房很尴尬... ▽ 甭管买房、租房、装修、设计&#xff0c…

大学生体测成绩判断c语言_体育改革瞄准高校,体测不过关可能真的毕不了业了...

「ECO氪体」体育圈人www.ecosports.cn文/ 圈哥回忆上学期间&#xff0c;体育最令你头疼的时刻是什么&#xff1f;是不是在体育中考将要到来之前&#xff0c;还没日没夜枯燥的训练和近乎苛刻的饮食控制&#xff1f;而现在&#xff0c;体育似乎不想再局限于中学了。图片截自&…

gojs 节点右键点击事件_SWMM快速建模方法(3)—建立管线上下游节点编号

在SWMM中&#xff0c;管线需要输入上下游节点检查井编号&#xff0c;那么在GIS中可否实现自动获取上下游节点编号呢&#xff1f;思路是这样的&#xff0c;首先获得管线两端节点&#xff0c;然后对端点进行融合&#xff0c;删除重复的节点&#xff0c;最后根据坐标关系分别建立管…

android 设置setmultichoiceitems设置初始化勾选_Linux内核启动:虚拟盘空间设置和内存管理结构初始化...

1. 设置虚拟盘并初始化接下来main函数将对外设中的虚拟盘区进行设置。 检查makefile文件中"虚拟盘使用标志"是否设置&#xff0c; 以此确定系统是否使用了虚拟盘(假设有虚拟盘&#xff0c;大小设置为2 MB)。 操作系统从缓冲区的末端起开辟2MB内存空间设置为虚拟盘&am…

关闭mysql服务的方法有哪些_MySQL--启动和关闭MySQL服务

介绍了启动服务器的两种方式&#xff0c;以及可能遇到的问题第一种&#xff1a;系统服务1)可以通过右击方式一步步找到服务右击计算机->选择管理->找到服务&#xff0c;然后双击打开&#xff0c;找到mysql&#xff0c;我安装的是mysql8.0所以服务的名称显示是mysql80&…

devstack mysql_DevStack部署OpenStack开发环境 - 问题总结

建议在使用DevStack搭建OpenStack开发环境前,先安装好开发工具包组.特别是gcc,主要一定是在yum update -y 之前,否则更新完系统后,在安装开发工具包会出现很多依赖包因为版本更新而无法安装.要部署OpenStack需要注意若电脑配置不高,我自己的经验是先最小化或基本Web安装,然后,再…

linux 安装RabbitMQ 注意版本

Linux下安装RabbitMQ 一下载依赖包 1.下载Rabbitmq 所依赖的环境gcc、erlang包和rabbitmq包&#xff0c;这里演示是网上下载gcc 依赖 1yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xzerla…

jquery.js把我的时间修改了为什么?_电气老手在PLC程序调试修改时的几个必备小窍门,看你知道几个?...

我们工程师在设计程序&#xff0c;调试程序&#xff0c;修改程序的时候&#xff0c;为了方便以后对程序的理解&#xff0c;最好是对程序进行注释&#xff0c;能够对程序进行注释也是比较好的一个习惯。为什么这么说呢&#xff1f;因为我们人的脑容量是有限的&#xff0c;或多或…

android如何用adb shell启动应用程序

昨天研究了很久&#xff0c;可能由于基础比较菜吧&#xff0c;所以&#xff0c;没有搜到一个可以直接解决问题的&#xff0c;需要综合几个之后&#xff0c;问题得以解决&#xff0c;记下方法&#xff0c;为了方便自己之后遇到同样问题&#xff0c;也为了方便搜索同样问题的朋友…

mysql数据库删除操作指令_MySQL删除数据库的命令是什么?

删除数据库的命令是&#xff1a;“DROP DATABASE 数据库名;”&#xff1b;例“drop database student;”就是删除名为student的数据库。“DROP DATABASE”语句可以用于删除数据库。使用drop 命令删除数据库drop database语句可以用于删除数据库。drop database命令格式&#xf…

mariadb与mysql的兼容_「MySQL架构」MariaDB versus MySQL: Compatibility

完全替代MySQLMariaDB版本的功能相当于一个“完全替代”的MySQL版本&#xff0c;但有一些限制。这意味着:MariaDB的数据文件通常是二进制的&#xff0c;与MySQL版本的数据文件兼容。所有的文件名和路径通常是相同的。数据和表定义文件(.frm)文件是二进制兼容的。请参阅下面的注…

mysql数据存储和函数_MySQL数据库——存储和函数

一、存储过程1 基本语法CREATE PROCEDURE sp_name ([proc_parameter[,...]])[characteristic ...] routine_body格式[IN|OUT|INOUT]param_name type2. IN、OUT、INOUT参数(1)带84存储过程实例1 #带多重IF的存储过程2 CREATE PROCEDURE SP_SGRADE_LEVEL(IN p_level char(Repeat语…

在Salesforce中创建Approval Process

在Salesforce中可以创建Approval Process来实现审批流程的功能&#xff0c;实际功能与我们常说的Workflow很相似&#xff0c;具体的设置步骤如下所示 1&#xff09;&#xff1a;选择对应的Object去创建对应的Approval Process 2&#xff09;&#xff1a;点击下图中的Create New…

Python 运算符括号

转载于:https://www.cnblogs.com/fanweisheng/p/11236193.html

计算机二级java试题_计算机二级考试《Java》试题及答案

计算机二级考试《Java》试题及答案选择题(每小题2分&#xff0c;共50分)下列各题A、B、C、D、 四个选项中&#xff0c;只有一个选项是正确的&#xff0c;请将正确选项涂写在答题卡相应的位置上&#xff0c;答在试卷上不得分。(11)下列对Java语言的叙述中&#xff0c;错误的是()…

绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞

被推荐了这个web平台&#xff0c;感觉挺适合新手的&#xff0c;网上搜了下没看到有人写wp&#xff0c;这里本入门萌新来稍微整理下自己解题的过程SQL注入漏洞01-数字型注入http://localhost:32774/sqli/01.php?id1发现有报错You have an error in your SQL syntax; check the …