实现的功能
- 命令行的解析,处理子命令和各种参数,验证用户的输入,将输入转换成内部参数
- 根据解析好的参数,发送一个HTTP请求,获得响应
- 友好地响应
对应的库
- 命令行解析-clap
- http客户端-reqwest
- 格式化输出-colored
- 错误处理-anyhow
- json格式化-jsonxf
- mime类型处理-mime
- 异步处理-tokio
代码实现
创建项目
cargo new httpie
cd httpie
更改依赖库
[package]
name = "httpie"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1" #错误处理
clap = "4.1.8" #命令行解析
colored = "2" #命令终端多彩显示
jsonxf = "1.1" #json 格式化
mime = "0.3.16" #处理mime类型
reqwest = {version = "0.11", features = ["json"]} #HTTP客户端
tokio = { version = "1", features = ["full"]} #异步库
主要来自陈天-Rust编程第一课的整理