目录

gurl

一个基于 golang 开发的命令行 http 客户端,参数设计参考了 curl,仅使用了语言内置的库实现命令行参数解析以及 http 请求的发送和响应处理。

注意:由于 flag 库的限制,工具不支持 opt 风格的参数缩写,如 -sSL。

支持的参数


  -F value
        Multipart 文件
  -H value
        请求头,可多次传入
  -L    重定向
  -S    展示错误
  -V    输出版本号
  -X string
        HTTP method: GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD (default "GET")
  -d string
        原始请求体
  -data string
        原始请求体
  -data-urlencode value
        表单格式的请求体
  -debug
        debug模式输出更多信息
  -dry-run
        是否运行,加了该选项后只输出参数,不进行实际请求
  -expand-data string
        扩展 data,变量以 {{name}} 形式占位,结合 --variable 中定义的变量或者环境变量扩展
  -expand-url string
        扩展 URL,变量以 {{name}} 形式占位,结合 --variable 中定义的变量或者环境变量进行扩展
  -expand-variable value
        扩展 variable,变量以 {{name}} 形式占位,结合 --variable 中定义的变量或者环境变量扩展
  -header value
        请求头,可多次传入
  -help
        展示帮助信息
  -i    展示响应头
  -include
        展示响应头
  -location
        重定向
  -max-time int
        超时时间,默认是 100 秒 (default 100)
  -request string
        HTTP method: GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD (default "GET")
  -retry int
        重试次数,默认为 0,不重试
  -s    不展示进度条
  -show-err
        展示错误
  -silent
        不展示进度条
  -thread-num int
        并发数,默认为 1, 传 0 或者 -1 时只有一个线程 (default 1)
  -url string
        请求链接地址,必须以 http 或者 https 开头
  -url-query value
        Query 参数,可多次传入
  -variable value
        以三种方式自定义变量: %name, name=text, name@file
  -version
        输出版本号

构建注意事项

注意 go.mod 中使用的 golang 版本与安装的 golang 版本是否一致,如果不一致,可能会下载 toolchain,可以根据自己使用 golang 版本的情况修改 go.mod 中的版本号。