#http-request #http #cli-client #cli #terminal #client

bin+lib treq

为黑客用户制作HTTP请求的CLI客户端

20个版本 (3个稳定版)

1.2.0 2024年2月26日
1.1.0 2024年2月16日
1.0.0 2024年1月27日
0.4.0 2023年5月8日
0.1.10 2023年1月26日

HTTP客户端 中排名第50

Download history 13/week @ 2024-03-10 1/week @ 2024-03-17 64/week @ 2024-03-31 161/week @ 2024-04-14

每月下载量308

遵循GPL-3.0许可证

145KB
3.5K SLoC

TReq

GitHub Workflow Status GitHub repo size

TReq是一个终端请求HTTP客户端。TReq是一个用户友好的命令行界面(CLI)HTTP客户端,旨在简单且完整,以便与API进行交互。可以通过简单的命令保存和编辑常用的请求,稍后再次运行它们。想象一下在终端中使用GUI工具进行HTTP请求的工作流程。

demo

功能

  • 针对API和REST定制:TReq针对与API、REST和JSON进行最小努力的工作进行了优化。
  • 基于HTTPie:CLI界面完全基于HTTPie,并寻求实现和扩展其主要功能(HTTPie的超集)。
  • 持久请求存储:使用简单的命令保存和编辑常用的请求,以便稍后再次运行。想象一下在终端中使用GUI工具进行HTTP请求的工作流程。
  • 漂亮的输出:UX在CLI中很重要。

示例

基本请求

treq GET example.com/users/id?name=John
treq POST example.com

带有自定义头和json有效负载的POST请求

treq POST example.com X-API-Token:123 name=John food=pizza

使用--save-as标志将请求提交并本地保存为"main-endpoint"

treq POST example.com name="John Doe" --save-as main-endpoint

使用run命令执行保存的请求

treq run main-endpoint

添加更多数据后执行它

treq run main-endpoint email='[email protected]' job=dev

实际用法...

# Create a user and save the request for make it again later
treq POST api.com/user name=John job=dev friends:='["Bob", "Jane"]' birth-year:=1990 --save-as create-user

# Make the same request for create a user "Jane"
treq run create-user name=Jane birth-year:=2001

# Editing saved request
treq edit birth-year:=2002 --method PATCH

安装

Ubuntu / Debian

最新版本页面下载最新的.deb软件包。打开您的终端,导航到下载的.deb文件所在的目录。使用以下命令安装TReq

sudo dpkg -i treq-x.x.x_amd64.deb

或者,您可以尝试

sudo apt install ./treq-x.x.x_amd64.deb

Arch / Manjaro

如果您正在使用Arch Linux,您可以使用yay等AUR助手从AUR安装TReq

yay -S treq-bin

Cargo

对于任何操作系统,安装TReq的最佳方式是使用cargo

使用rustup安装cargo,然后...

cargo install treq

Linux通用

TReq的二进制文件是静态链接的,没有依赖项,因此与大多数主流Linux发行版兼容。要安装,请从最新发布页面下载二进制文件,并将其放置在您的PATH目录中。

使用Curl

curl -fLo /usr/local/bin/treq --create-dirs https://github.com/talis-fb/TReq/releases/latest/download/treq.bin
chmod +x /usr/local/bin/treq

使用wget

wget -O /usr/local/bin/treq https://github.com/talis-fb/TReq/releases/latest/download/treq.bin
chmod +x /usr/local/bin/treq

Windows

最新发布页面下载最新的.exe文件。将下载的.exe文件放置在包含在系统PATH中的目录中,或者将包含.exe的目录添加到您的PATH中。

用法

有关命令和选项的更多详细信息,请参阅内置的帮助。

treq --help

TReq使用HTTPie的请求项语法来设置头部、请求正文、查询字符串等。

  • =/:=用于设置请求正文的JSON或表单字段(=用于字符串,:=用于其他JSON类型)。
  • ==用于添加查询字符串。
  • :用于添加或删除头部,例如connection:keep-alive或connection:

正文、头部和参数操作

# POST with JSON payload => { "language": "Rust", "food": "pizza" }
treq POST example.com language=Rust food=pizza


# POST with custom Header => { Content-Type: application/json }
treq POST example.com Content-Type:application/json


# Define query params at url 
#  (these two below are equivalent)
treq example.com?name=John&job=dev
treq example.com name==John job==dev

更复杂的需求

# POST with JSON payload 
#  => { 
#    "friends": ["John", "Jane"], 
#    "job": "dev",
#    food": "pizza" 
#  }

#  (these three below are equivalent)
treq POST example.com?sort=true --raw '{ "friends": ["John", "Jane"] }' job=dev food=pizza

treq POST example.com?sort=true --raw friends:='["John", "Jane"]' job=dev food=pizza

treq POST example.com sort==true --raw friends:='["John", "Jane"]' job=dev food=pizza

本地主机别名

当定义包含localhost的URL时,可以使用别名:{PORT}/{ROUTES}来代替完整的URL。

例如,下面命令的每对都是等价的...

treq GET localhost:8000
treq GET :8000


treq GET localhost:80/users 
treq GET :80/users


treq run my-request --url localhost:9000
treq run my-request --url :9000

贡献

欢迎贡献和功能请求!请随意在我们的GitHub仓库提交问题或拉取请求。

即将推出的功能

依赖项

~15–29MB
~484K SLoC