gout 简介
gout 是 http client 领域的瑞士军刀,小巧,强大,犀利。
项目地址
https://github.com/guonaihong/gout
最终形态
gout.feature > sum(all( http_client.feature))
构架图

常见问题回答
- 问:为啥版本号这么保守
- 答:规划了很多好玩的功能(自定义 benchmark,upstream, select, match),如果版本号不压缩下,过段时间就和 chrome 一样。
- 问:何为流式架构
- 答:可以先看上面的构架图,已经很清晰地描述了。有点后悔把这个概念抛出来,现在有很多童鞋问我。流式架构为了横向扩张功能用的设计方式,如果不关心代码垒了很多行 如何保持设计的清晰度,也没必要关心这点。
- 问:如何参与 gout
- 答:只要你觉得这样可以让 gout 更好就行。小到一个拼写,大到一个 pr 都可以。提功能 pr 我会尽心审核,在互动的过程也许会学到老司机独门绝技。
特别感谢下面 github 用户参与 v0.0.6 版本
deloz,logeable(排名不分先后,如果有童鞋忘了说了,也可以告诉我下)
小贴士(更多用法请看文档)
使用 gout 生成 curl 命令
package main
import (
"fmt"
"github.com/guonaihong/gout"
)
func main() {
// 1.formdata
err := gout.GET(":1234").
SetForm(gout.A{"text", "good", "mode", "A", "voice", gout.FormFile("./t8.go")}).
Export().Curl().Do()
// output:
// curl -X GET -F "text=good" -F "mode=A" -F "voice=@./voice" "http://127.0.0.1:1234"
// 2.json body
err = gout.GET(":1234").
SetJSON(gout.H{"key1": "val1", "key2": "val2"}).
Export().Curl().Do()
// output:
// curl -X GET -H "Content-Type:application/json" -d "{\"key1\":\"val1\",\"key2\":\"val2\"}" "http://127.0.0.1:1234"
fmt.Printf("%v\n", err)
}