安装
go get -u github.com/valyala/fasthttp
Get
package main import ( "github.com/valyala/fasthttp" ) func main() { url := `http://httpbin.org/get` status, resp, err := fasthttp.Get(nil, url) if err != nil { fmt.Println("请求失败:", err.Error()) return } if status != fasthttp.StatusOK { fmt.Println("请求没有成功:", status) return } fmt.Println(string(resp)) }
Post
func main() { url := `http://httpbin.org/post?key=123` // 填充表单,类似于net/url args := &fasthttp.Args{} args.Add("name", "test") args.Add("age", "18") status, resp, err := fasthttp.Post(nil, url, args) if err != nil { fmt.Println("请求失败:", err.Error()) return } if status != fasthttp.StatusOK { fmt.Println("请求没有成功:", status) return } fmt.Println(string(resp)) }
ES_DSL
package main import ( "encoding/json" "fmt" "github.com/tidwall/gjson" "github.com/valyala/fasthttp" "reflect" ) func main() { args := ` { "size": 0, "query": { "bool": { "must": [ { "term": { "identity_id": "5" } }, { "term": { "b_use": "1" } }, { "terms": { "org_id": [ "AC0C9659-C4A5-48EE-AD4C-C0CC210E021C", "625036FB-968C-4777-ABAF-C9D7617F5B0E", "2E4D5752-185E-4B40-A0EF-380FB0821421", "05A1B886-05F4-48D5-B1F7-95631C70B8C5" ] } } ] } }, "aggs": { "person": { "terms": { "field": "org_id", "size": 500 } } } } ` url := "http://10.10.14.222:9200/t_sys_loginperson/_search" //有性能要求的代码中,推荐通过 AcquireRequest 和 AcquireResponse 来获取 req 和 resp 。 req := fasthttp.AcquireRequest() defer fasthttp.ReleaseRequest(req) // 用完需要释放资源 req.Header.SetContentType("application/json") req.Header.SetMethod("POST") req.SetRequestURI(url) requestBody := []byte(args) req.SetBody(requestBody) resp := fasthttp.AcquireResponse() defer fasthttp.ReleaseResponse(resp) // 用完需要释放资源 if err := fasthttp.Do(req, resp); err != nil { fmt.Println("请求失败:", err.Error()) return } b := resp.Body() fmt.Println("result:\r\n", string(b)) value := gjson.Get(string(b), "aggregations.person.buckets") fmt.Println("result1:\r\n",value.String()) }