[goreq](http://www.github.com/xioxu/goreq)
goreq是一个力求最简化的golang http request库,简化仅仅是指使用方法比较简单, 但功能却一点不弱,
简单到极致的普通的request
```
req := goreq.Req(nil)
body,_,_ := req.Get("https://www.baidu.com").Do()
fmt.Print(string(body))
```
完成一个稍微复杂点的功能,使用以下几行代码就可以完成一个反向代理工具:
```
package main
import (
"net/http"
"github.com/xioxu/goreq"
)
func main() {
if err := http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
req := goreq.Req(&goreq.ReqOptions{
Method: r.Method,
Url: "https://www.baidu.com" + r.RequestURI,
})
req.PipeFromReq(r).PipeToResponse(w)
})); err != nil {
panic(err)
}
}
```
代码仓库地址: http://www.github.com/xioxu/goreq
欢迎围观点赞!
做一个调查, 大家觉得一个Option struct的可空bool字段定义为*bool使用舒服还是定义一个NullableBool类型更好些?
我个人是不太喜欢*bool, 感觉额外定义一个变量使用起来不够顺畅, 但使用NullablBool的话其实代码稍微更长些,也不够舒服, 大家感觉呢?
#1
更多评论
为了减少使用者的代码输入量,最终我还是删除了NullableBool, 而是直接内置了两个变量, goreq.TrueVal, goreq.FalseVal, 这样代码应该会更直观些
#3