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…

vue3+ el-upload封装上传组件

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

在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…

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

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

ros1仿真导航机器人 navigation

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

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

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

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

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

数据链路层分析

文章目录 前言一、数据链路层概述二、终端之间的通信三、帧格式1.Ethernet_II型2.IEEE 802.3 四、MTU分析五、数据帧的传输1.MAC地址2.单播3.广播4.组播5.数据帧的收发 前言 网络中传输数据需要定义并遵循一些标准&#xff0c;以太网是根据IEEE802.3标准来管理和控制数据帧的&…

sqlserver开启CDC

1、背景 由于需要学习flink cdc&#xff0c;并且数据选择sqlserver&#xff0c;所以这里记录sqlserver的cdc开启操作步骤。 2、基础前提 官方介绍地址&#xff1a;https://learn.microsoft.com/zh-cn/sql/relational-databases/track-changes/enable-and-disable-change-dat…

如何优化前端性能:提高网页加载速度的实用技巧

我们在前端开发中&#xff0c;性能优化是提高用户体验的关键因素。网页加载速度直接影响用户的满意度和留存率。本文将介绍几种优化前端性能的实用方法&#xff0c;帮助你提高网页加载速度。 问题描述 &#xff1a; 首先前端性能优化涉及多个方面&#xff0c;包括减少HTTP请…

专为运维工程师设计!阿里藏经阁出品的Python实战手册被我搞来了

Python 可能是极少数既简单又强大的编程语言中的一种。更重要的是&#xff0c;用它来编程是非常快乐的事。 今天给小伙伴们分享的是阿里“藏经阁”出品的专门给运维工程师设计的Python实战手册 废话不多说&#xff0c;下面把内容展示给大家 01 Python快速回顾 02 Python脚本…

【大模型】基于ChatGLM进行微调及应用 [更新中......]

文章目录 一、前言二、说明2.1 代码结构2.2 依赖包版本 三、启动对话演示3.1 命令行交互 cli_demo.py3.2 网页交互 web_demo.py 四、微调模型4.1 基于 P-Tuning v2 微调模型4.1.1 软件依赖4.1.2 下载数据集4.1.3 下载模型文件4.1.4 操作步骤 4.2 基于 Full Parameter 微调模型4…

从进程到协程,浅谈Java提高CPU利用率的发展

综合CPU利用率来讲,计算机远古时期,为提高CPU利用率,有以下概念 串行进程->并行进程->线程->线程池>->虚拟线程(协程) 一,串行进程, 早期的操作系统对任务调度,往往从最简单的实现开端,串型进程意思是对分配的一个任务,其任务能百分百占用CPU,哪怕…

前程无忧滑块

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 前言(lianxi …

日期时间显示网页

SweetOrange_Clock &#x1f558; 一、简介 1、这个项目包括一个HTML文件&#xff0c;其中包含页面的样式和脚本。 2、页面以优雅的黑白配色为主题&#xff0c;突出了实用性和视觉冲击力&#xff0c;使得显示内容在视觉上更为突出和易于阅读。 3、这是一个日期时间显示器。通…

高通源代码版本ADK工具版本源代码release版本MDE版本介绍

0 Preface/Foreword 1 版本介绍 高通代码存放在chipcode中&#xff0c;网址URL&#xff1a;Chipcode 1.1 高通源代码版本 Bluetooth Audo芯片的高通源代码版本号&#xff08;类似于分类的类名&#xff09;&#xff1a;ADK.SRC.1.0 &#xff08;最新qcc307x系列及之后的芯片如…

Pycharm安装依赖

1. IDE集成的错误解决 鼠标悬停,点击 install 2. 配置环境 ctrlalts 3. 终端运行pip (要求有先有一个pip) 最好用最简单

NSE and KGE

NSE&#xff08;Nash-Sutcliffe Efficiency&#xff09;&#xff1a; 解释&#xff1a;NSE 是衡量水文模型模拟结果与观测值之间拟合程度的指标。它计算模拟值与观测值之间的均方误差&#xff0c;并将其与观测值的方差进行比较。NSE 的取值范围为-∞至 1&#xff0c;值越接近 1…