linux网络命令:httpie详解-简单易用的命令行 HTTP 客户端

目录

一、命令概述

二、基本特点

1、直观和友好的命令语句

2、内置 JSON 支持

3、支持多种请求方法

4、支持 HTTPS、代理和授权验证

5、支持多种请求数据格式

6、自定义 headers 头

7、持久 sessions 存储

8、插件支持

三、安装

1、对于基于 Debian 的系统(如 Ubuntu)

2、对于基于 RPM 的系统(如 CentOS)

3、对于其他系统

四、语法和使用

1、命令

(1)语法如下

(2)帮助信息

2、发送 GET 请求

3、发送 POST 请求并附带 JSON 数据

4、发送带有自定义 headers 的请求

5、从文件中上传内容

6、查看请求信息

五、其他功能

1、支持下载

2、会话持久化

3、自定义请求头

六、示例

 1. 发送GET请求

 2. 发送带有参数的GET请求

 3. 发送POST请求

 (1)发送JSON格式的POST请求

 (2)显式指定Content-Type为application/json

 4. 发送自定义请求头

 5. 发送表单数据

 6. 上传文件

 7. 查看请求的详细信息

 8. 认证

七. 总结


一、命令概述

        HTTPie 是一个简单易用的命令行 HTTP 客户端,它为 CLI(命令行界面)与 Web 服务的交互提供了一个更为友好的界面。 类似于curl的命令行HTTP客户端,但操作更简单,支持颜色化输出和会话持久化等功能。

二、基本特点

1、直观和友好的命令语句

        HTTPie 提供了简单自然的表述来发送任意 HTTP 请求,并且支持格式化且高亮显示输出内容。

2、内置 JSON 支持

        无需额外转换,直接发送和接收 JSON 数据。

3、支持多种请求方法

        GET、POST、PUT、DELETE 等。

4、支持 HTTPS、代理和授权验证

        确保通信的安全性和灵活性。

5、支持多种请求数据格式

        除了 JSON,还支持表单和文件上传。

6、自定义 headers 头

        可以方便地设置和修改 HTTP 请求头。

7、持久 sessions 存储

        支持对同一 host 进行请求之间的持久通信。

8、插件支持

        扩展性强,可以通过插件增加更多功能。

三、安装

        HTTPie 支持多种操作系统,包括 Linux、macOS 和 Windows。在 Linux 上,可以通过包管理器来安装:

1、对于基于 Debian 的系统(如 Ubuntu)

可以使用 apt-get install httpie 命令进行安装。

2、对于基于 RPM 的系统(如 CentOS)

可以使用 yum install httpie 命令进行安装。实际操作如下:
 

[root@ecs-52a1 home]# http
bash: http: command not found
[root@ecs-52a1 121yunwei]# yum install httpie
Loaded plugins: fastestmirror
Determining fastest mirrors
base                                                                                                                                   | 3.6 kB  00:00:00
epel                                                                                                                                   | 4.3 kB  00:00:00
extras                                                                                                                                 | 2.9 kB  00:00:00
updates                                                                                                                                | 2.9 kB  00:00:00
(1/3): epel/x86_64/updateinfo                                                                                                          | 1.0 MB  00:00:00
(2/3): epel/x86_64/primary_db                                                                                                          | 8.7 MB  00:00:00
(3/3): updates/7/x86_64/primary_db                                                                                                     |  27 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpie.noarch 0:1.0.3-1.el7 will be installed
--> Processing Dependency: python36-pygments for package: httpie-1.0.3-1.el7.noarch
--> Processing Dependency: python36-requests for package: httpie-1.0.3-1.el7.noarch
--> Running transaction check
---> Package python36-pygments.noarch 0:2.4.2-1.el7 will be installed
---> Package python36-requests.noarch 0:2.14.2-2.el7 will be installed
--> Processing Dependency: python36-chardet for package: python36-requests-2.14.2-2.el7.noarch
--> Processing Dependency: python36-idna for package: python36-requests-2.14.2-2.el7.noarch
--> Processing Dependency: python36-urllib3 for package: python36-requests-2.14.2-2.el7.noarch
--> Running transaction check
---> Package python36-chardet.noarch 0:3.0.4-1.el7 will be installed
---> Package python36-idna.noarch 0:2.10-1.el7 will be installed
---> Package python36-urllib3.noarch 0:1.25.6-2.el7 will be installed
--> Processing Dependency: python36-six >= 1.12.0 for package: python36-urllib3-1.25.6-2.el7.noarch
--> Processing Dependency: python36-pysocks for package: python36-urllib3-1.25.6-2.el7.noarch
--> Running transaction check
---> Package python36-pysocks.noarch 0:1.6.8-7.el7 will be installed
---> Package python36-six.noarch 0:1.14.0-3.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==============================================================================================================================================================Package                                      Arch                              Version                                 Repository                       Size
==============================================================================================================================================================
Installing:httpie                                       noarch                            1.0.3-1.el7                             epel                            103 k
Installing for dependencies:python36-chardet                             noarch                            3.0.4-1.el7                             epel                            190 kpython36-idna                                noarch                            2.10-1.el7                              epel                             99 kpython36-pygments                            noarch                            2.4.2-1.el7                             epel                            1.5 Mpython36-pysocks                             noarch                            1.6.8-7.el7                             epel                             30 kpython36-requests                            noarch                            2.14.2-2.el7                            epel                            112 kpython36-six                                 noarch                            1.14.0-3.el7                            epel                             34 kpython36-urllib3                             noarch                            1.25.6-2.el7                            epel                            178 kTransaction Summary
==============================================================================================================================================================
Install  1 Package (+7 Dependent packages)Total download size: 2.2 M
Installed size: 12 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): python36-chardet-3.0.4-1.el7.noarch.rpm                                                                                         | 190 kB  00:00:00
(2/8): httpie-1.0.3-1.el7.noarch.rpm                                                                                                   | 103 kB  00:00:00
(3/8): python36-idna-2.10-1.el7.noarch.rpm                                                                                             |  99 kB  00:00:00
(4/8): python36-pysocks-1.6.8-7.el7.noarch.rpm                                                                                         |  30 kB  00:00:00
(5/8): python36-requests-2.14.2-2.el7.noarch.rpm                                                                                       | 112 kB  00:00:00
(6/8): python36-six-1.14.0-3.el7.noarch.rpm                                                                                            |  34 kB  00:00:00
(7/8): python36-urllib3-1.25.6-2.el7.noarch.rpm                                                                                        | 178 kB  00:00:00
(8/8): python36-pygments-2.4.2-1.el7.noarch.rpm                                                                                        | 1.5 MB  00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                         4.2 MB/s | 2.2 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : python36-six-1.14.0-3.el7.noarch                                                                                                           1/8Installing : python36-pygments-2.4.2-1.el7.noarch                                                                                                       2/8Installing : python36-pysocks-1.6.8-7.el7.noarch                                                                                                        3/8Installing : python36-urllib3-1.25.6-2.el7.noarch                                                                                                       4/8Installing : python36-idna-2.10-1.el7.noarch                                                                                                            5/8Installing : python36-chardet-3.0.4-1.el7.noarch                                                                                                        6/8Installing : python36-requests-2.14.2-2.el7.noarch                                                                                                      7/8Installing : httpie-1.0.3-1.el7.noarch                                                                                                                  8/8Verifying  : python36-requests-2.14.2-2.el7.noarch                                                                                                      1/8Verifying  : python36-chardet-3.0.4-1.el7.noarch                                                                                                        2/8Verifying  : python36-idna-2.10-1.el7.noarch                                                                                                            3/8Verifying  : httpie-1.0.3-1.el7.noarch                                                                                                                  4/8Verifying  : python36-pysocks-1.6.8-7.el7.noarch                                                                                                        5/8Verifying  : python36-urllib3-1.25.6-2.el7.noarch                                                                                                       6/8Verifying  : python36-pygments-2.4.2-1.el7.noarch                                                                                                       7/8Verifying  : python36-six-1.14.0-3.el7.noarch                                                                                                           8/8Installed:httpie.noarch 0:1.0.3-1.el7Dependency Installed:python36-chardet.noarch 0:3.0.4-1.el7    python36-idna.noarch 0:2.10-1.el7   python36-pygments.noarch 0:2.4.2-1.el7  python36-pysocks.noarch 0:1.6.8-7.el7python36-requests.noarch 0:2.14.2-2.el7  python36-six.noarch 0:1.14.0-3.el7  python36-urllib3.noarch 0:1.25.6-2.el7Complete!
[root@ecs-52a1 home]#
[root@ecs-52a1 home]#

3、对于其他系统

可以使用 pip(Python 的包管理工具)进行安装,命令为 pip install --upgrade httpie。

四、语法和使用

1、命令

(1)语法如下

        HTTPie 的使用非常简单,基本的命令格式为:

http [flags] [METHOD] URL [ITEM [ITEM]]

(2)帮助信息

        在命令行输入如下命令:

        http --help


        实际操作如下:

2、发送 GET 请求

        命令如下:

        http httpbin.org/get

        实际操作如下:

[root@ecs-52a1 home]#
[root@ecs-52a1 home]#
[root@ecs-52a1 home]# http httpbin.org/get
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 295
Content-Type: application/json
Date: Mon, 01 Jul 2024 13:38:48 GMT
Server: gunicorn/19.9.0{"args": {},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Host": "httpbin.org","User-Agent": "HTTPie/1.0.3","X-Amzn-Trace-Id": "Root=1-6682b168-27ab71993d1c8f194a0470db"},"origin": "121.37.68.30","url": "http://httpbin.org/get"
}[root@ecs-52a1 home]#
[root@ecs-52a1 home]#

3、发送 POST 请求并附带 JSON 数据

        命令如下:

        http POST httpbin.org/post name=John email='john@example.com'

4、发送带有自定义 headers 的请求

        命令如下:

        http PUT httpbin.org/put X-API-Token:123 name=John

5、从文件中上传内容

        命令如下:

        http example.org < file.json

6、查看请求信息

        使用 -v 参数可以查看请求的详细信息,如 http -v example.org

五、其他功能

1、支持下载

        使用 --download 参数可以将响应内容作为文件下载。

2、会话持久化

        使用 --session 参数可以在多个请求之间保持会话状态。

3、自定义请求头

        可以直接在命令中设置请求头,如 http localhost:8000 Host:example.com

六、示例

        使用Linux命令httpie的示例可以按照不同的HTTP请求类型和用法进行分类。下面给出一些具体的示例,展示了httpie命令的多种用法,涵盖了不同的HTTP请求类型、请求头和请求体等方面。通过结合这些示例,可以根据自己的需求发送各种HTTP请求。

 1. 发送GET请求

 基本GET请求,命令如下:

  http vidisit.cn/get

  此命令将向vidisit.cn的/get端点发送一个GET请求,并返回响应。实际操作如下:
 

[root@ecs-52a1 home]#
[root@ecs-52a1 home]# http vidisit.cn/get
HTTP/1.1 404 Not Found
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html
Date: Mon, 01 Jul 2024 13:41:00 GMT
Server: wts/1.19.9.1
Transfer-Encoding: chunked
X-Frame-Options: SAMEORIGIN<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Äã·ÃÎʵÄÒ³Ãæ²»´æÔÚ»ò±»É¾³ý£¡</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=refresh content=2;url=http://www.shareda.cn/>
<STYLE type=text/css>.font14 {FONT-SIZE: 14px
}
.font12 {FONT-SIZE: 12px
}
.font12 a{FONT-SIZE: 12px; color: #CC0000; text-decoration:none;
}
</STYLE><META content="MSHTML 6.00.2900.3354" name=GENERATOR></HEAD>
<BODY>
<TABLE height=500 cellSpacing=0 cellPadding=0 width=500 align=center
background=404/err.gif border=0><TBODY><TR><TD height=330></TD></TR><TR><TD vAlign=top><DIV class=font14 align=center><STRONG>Äã·ÃÎʵÄÒ³Ãæ<FONTcolor=#0099ff>²»´æÔÚ</FONT>»ò±»<FONT color=#ff0000>ɾ³ý£¡<BR></FONT></STRONG><SPANclass=font12><FONT color=#666666>ÈýÃëºó×Ô¶¯·µ»Ø<A href="http://www.shareda.cn"></A>Ê×Ò³........</FONT></SPAN></DIV></TD></TR></TBODY></TABLE></BODY></HTML>[root@ecs-52a1 home]#

 2. 发送带有参数的GET请求

         在URL中直接包含参数,命令如下:

          http httpbin.org/get?param1=value1&param2=value2

         此命令将发送一个包含查询参数的GET请求。

 3. 发送POST请求

 (1)发送JSON格式的POST请求

        发送JSON格式的POST请求,命令如下:

          http POST httpbin.org/post name=John email='john@example.com'

        此命令将发送一个包含JSON数据(在本例中为name和email字段)的POST请求。注意,HTTPie默认将键值对解释为JSON对象。

 (2)显式指定Content-Type为application/json

        显式指定Content-Type,命令如下:

        http POST httpbin.org/post Content-Type:application/json name=John email='john@example.com'

        虽然HTTPie默认将键值对解释为JSON,但你也可以显式指定Content-Type。

 4. 发送自定义请求头

         设置自定义请求头,命令如下:

          http PUT httpbin.org/put X-API-Token:123 name=John

        此命令向/put端点发送一个PUT请求,并包含一个名为X-API-Token的自定义请求头。

 5. 发送表单数据

         发送表单格式的POST请求,命令如下:

          http -f POST httpbin.org/post username=linuxmi-user password=linuxmi-pwd

        使用-f或--form选项,HTTPie将发送表单编码的请求体。

 6. 上传文件

         使用POST请求上传文件,命令如下:

          http -f POST httpbin.org/post file@/path/to/file.txt

        此命令将文件file.txt作为表单数据的一部分上传。

 7. 查看请求的详细信息

         使用-v或--verbose选项查看详细输出,命令如下:

        http -v httpbin.org/get

        -v选项将显示请求的详细信息,包括请求头和响应头。

        实际操作如下:

[root@ecs-52a1 home]#
[root@ecs-52a1 home]# http -v httpbin.org/get
GET /get HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: httpbin.org
User-Agent: HTTPie/1.0.3HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 295
Content-Type: application/json
Date: Mon, 01 Jul 2024 13:44:00 GMT
Server: gunicorn/19.9.0{"args": {},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Host": "httpbin.org","User-Agent": "HTTPie/1.0.3","X-Amzn-Trace-Id": "Root=1-6682b2a0-3a05485606ae7b1f5a361705"},"origin": "121.37.68.30","url": "http://httpbin.org/get"
}[root@ecs-52a1 home]#

 8. 认证

         使用Basic Auth进行认证,命令如下:

          http -a username:password httpbin.org/basic-auth/username/password

        使用-a或--auth选项,后面跟上用户名和密码(用冒号分隔),可以进行Basic Auth认证。

七. 总结

        HTTPie 是一个功能强大且易于使用的命令行 HTTP 客户端,它简化了 HTTP 请求的发送和调试过程,为开发人员和系统管理员提供了极大的便利。无论是测试、调试还是日常的网络交互,HTTPie 都是一个不可或缺的工具。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

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

相关文章

MQ运行时遇到的问题

遇到的问题描述&#xff1a;我在绑定通道的时候发现了通道绑定失败&#xff0c; 原因&#xff1a; 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的&#xff0c;导致后面的代码再去进行注册的时候并没有实现那个类型 解决&#xff1a; 更改代码&#xff0…

中介子方程三十九

XXFXXuXXWXXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXη…

昇思25天学习打卡营第8天|保存与加载

当模型训练好以后&#xff0c;就可以用来预测了。后续我们在其他端部署的时候不需要再次训练&#xff0c;直接使用训练好的模型进行推理就可以了。 在保存和加载的时候我们都需要传入模型。保存的API是save_checkpoint(model,path), 对应的加载的API是 load_checkpoint(model,…

Java实现发送邮件

引入jar包 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency># 发送邮件配置 mail:smtp:host: smtp.163.comport: 25auth: trueusername: 139*****163.…

vue3+ el-upload封装上传组件

组件功能介绍 上传格式限制上传大小限制上传文件数量限制自定义上传区上传成功回调禁用上传开关与点击上传自定义事件暴露所以上传文件列表&#xff08;uploadList&#xff09;与当前文件数据&#xff08;uploadLatestFile&#xff09; 组件代码Upload.vue <template>&l…

启航数据科学:Jupyter Notebook安装全攻略,轻松入门!

目录 简介安装步骤 安装Python安装pip安装Jupyter Notebook 启动Jupyter Notebook基本使用常见问题总结 简介 Jupyter Notebook 是一个交互式的笔记本环境&#xff0c;支持运行和展示 Python 代码&#xff0c;以及文本、图表和公式。它广泛应用于数据分析、机器学习和科学计算…

在Stimulsoft 报告中连接来自 MySQL 的数据

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…

仓库管理系统24--统计报表

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、引用LiveCharts 2、创建LiveChartViewModel using GalaSoft.MvvmLight; using LiveCharts.Wpf; using LiveCharts; using Sy…

【SQL注入】 数据库基础

MySQL中的库名 information_schema&#xff08;信息库&#xff09;—— 保存其他数据库里所有信息&#xff08;数据库名、表、字段的数据类型/访问权限&#xff09; mysql—— 存储用户名 密码 host performance_schema——内存数据库 数据放在内存中直接操作的数据库 sys—…

代码随想录训练营Day52

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、回文子串二、最长回文子序列 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是跟着代码随想录刷题的第52天&#xff0c;主要学…

从新手到高手:Scala函数式编程完全指南,Scala 数据类型(4)

1、Scala 数据类型 Scala 与 Java有着相同的数据类型&#xff0c;下表列出了 Scala 支持的数据类型&#xff1a;

智能扫地机器人编译过程中的定位导航技术

智能扫地机器人的定位导航技术主要包括以下几种&#xff0c;下面将分点表示并归纳这些技术及其特点&#xff1a; 1.随机碰撞导航&#xff1a;这是最早期的导航方式&#xff0c;扫地机器人通过随机移动来覆盖地面。 特点&#xff1a;效率较低&#xff0c;容易重复清洁或遗漏区域…

CentOS 7报错Erro:NetworkManager is not running怎么处理?

CentOS 7系统报错Error: NetworkManager is not running&#xff0c;意思是NetworkManager未在运行&#xff0c;NetworkManager是Linux系统上管理网络设置的守护进程&#xff0c;负责自动处理和配置网络连接&#xff0c;未运行可能会导致网络连接问题。遇到报错Error: NetworkM…

运用大数据分析提升返利App的市场营销效果

运用大数据分析提升返利App的市场营销效果 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 随着信息技术的快速发展&#xff0c;大数据分析在各行各业的…

ros1仿真导航机器人 navigation

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1navigation导航框架 2导航设置过程 &#xff08;1&#xff09;启动仿真环境 roslaunch why_simulation why_robocup.launch &#xff08;2&#xff09;启动move_base导航、amcl定位 roslaunch why_simulation nav…

系统运行缓慢CPU飙高等问题的排查思路

系统运行缓慢和CPU飙高问题的排查思路 当系统运行缓慢或CPU使用率飙高时&#xff0c;可能有多种原因导致这一现象。以下是一些排查思路和方法&#xff1a; 1. 检查系统资源使用情况 - 任务管理器&#xff08;Windows&#xff09;或活动监视器&#xff08;Mac&#xff09;或top…

postgresql搭建

搭建postgresql-11.3&#xff0c;和客户端工具 1&#xff0c;准备对应的包&#xff0c;右键直接下一步安装完即可&#xff0c; 将postgresql设置为本地服务&#xff0c;方便启动&#xff0c; 2&#xff0c;用对应客户端软件连接&#xff0c;新建一个数据库controlDB 新建用户…

无偏归一化自适应心电ECG信号降噪方法(MATLAB)

心电信号作为一种生物信号&#xff0c;含有大量的临床应用价值的信息&#xff0c;在现代生命医学研究中占有重要的地位。但心电信号低频、低幅值的特点&#xff0c;使其在采集和传输的过程中经常受到噪声的干扰&#xff0c;使心电波形严重失真&#xff0c;从而影响后续的病情分…

你还不会买智能猫砂盆吗?跟你们详细讲解今年最火的智能猫砂盆!

智能猫砂盆的坑&#xff0c;想必有很多养猫家庭都踩过吧。自己买回来的机器&#xff0c;不是空间不够大&#xff0c;导致猫咪拉到外面去&#xff0c;就是铲不干净&#xff0c;还得自己进行二次清理&#xff0c;搞得这个智能猫砂盆白买了。那如果我们想要购买合适自己家猫咪的智…