使用Golang开发一个HTTP客户端请求命令行工具

什么是Golang

Golang,也被称为Go语言,是由Google开发的一种开源的编程语言。它于2007年开始设计,于2009年首次公开发布。Golang被设计成一种通用的编程语言,旨在提供简单、高效和可靠的软件开发方式。Golang具有静态类型、垃圾回收、并发编程和内存安全等特性。

Golang以其简洁、直观和高效的语法而受到广泛喜爱。它在编程效率和执行效率之间取得了很好的平衡,同时还提供了一些用于并发编程的原生支持,使得开发者可以更轻松地编写高性能的并发程序。

Golang被广泛应用于构建Web服务、分布式系统、网络工具和云计算平台等领域。它拥有庞大的开发社区和丰富的开源生态系统,提供了许多优秀的库和框架,使得开发者可以更快速、更高效地开发应用程序。

什么是HTTP客户端

HTTP客户端是指发送HTTP请求到HTTP服务器并接收HTTP响应的软件或程序。它可以通过例如浏览器、命令行工具或者开发框架的客户端库来实现。HTTP客户端可以向服务器发送各种类型的HTTP请求,如GET、POST、PUT、DELETE等,并接收服务器返回的HTTP响应。通过HTTP客户端,用户可以与Web服务器进行交互,访问和操作网络资源。常见的HTTP客户端包括浏览器,curl命令行工具和Python的requests库等。

什么是命令行工具

命令行工具是一种在命令行界面下运行的软件程序,它可以通过输入文本命令来执行特定任务或操作。这些工具通常是以命令行界面(CLI)的形式提供,用户可以通过键盘输入命令,并且工具会基于这些命令执行相应的操作。命令行工具可以用于各种操作系统,如Windows、Mac和Linux,并且可以执行各种任务,如文件操作、系统管理、软件开发、网络管理等。与图形用户界面(GUI)相比,命令行工具通常更加灵活和高效,因为它们不需要消耗额外的计算机资源来绘制图形界面。

zdpgo_httpie

使用Golang开发的一个HTTP客户端命令行工具。

主要目标是简化REST接口的测试,使得能够通过命令行的方式直接对开发的HTTP REST接口进行简单的测试,

快速验证HTTP REST接口的正确性。

构建可执行程序

检查依赖:

bash 复制代码
go mod tidy

Windows构建可执行程序:

bash 复制代码
go build -o zhttp.exe cmd/zhttp/main.go

Linux构建可执行程序:

bash 复制代码
go build -o zhttp cmd/zhttp/main.go

使用说明

发送GET请求

基本用法:

bash 复制代码
./zhttp.exe GET httpbin.org/get

下载文件:

bash 复制代码
zhttp --download <any url you want>

发送POST请求

基本用法:

bash 复制代码
./zhttp.exe POST httpbin.org/post hello=world foo=bar

zhttp POST httpbin.org/post hello=world foo=bar

查看请求信息:

bash 复制代码
zhttp -v POST httpbin.org/post hello=world foo=bar

携带请求头:

bash 复制代码
zhttp -v POST httpbin.org/post X-Foo:foobar

发送HTTPS请求:

bash 复制代码
zhttp --verify=no https://httpbin.org/get

版本说明

v0.1.0

  • 整合zdpgo_errors

v0.1.1

  • 整合zdpgo_isatty

v0.1.2

  • 所有网络依赖本地化
相关推荐
吴_知遇29 分钟前
【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
开发语言·c++·华为od
basketball6161 小时前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
宁酱醇1 小时前
各种各样的bug合集
开发语言·笔记·python·gitlab·bug
啊吧怪不啊吧1 小时前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
谷晓光1 小时前
Python 中 `r` 前缀:字符串处理的“防转义利器”
开发语言·python
Tiger Z1 小时前
R 语言科研绘图第 41 期 --- 桑基图-基础
开发语言·r语言·贴图
chuxinweihui2 小时前
数据结构——二叉树,堆
c语言·开发语言·数据结构·学习·算法·链表
陈大大陈2 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存
宝耶2 小时前
HTTP协议-请求协议
网络协议·http·servlet
看到我,请让我去学习2 小时前
C语言基础(day0424)
c语言·开发语言·数据结构