github.com/nsqio/nsq@v1.3.0/apps/nsq_to_http/http.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "fmt" 6 "net/http" 7 8 "github.com/nsqio/nsq/internal/version" 9 ) 10 11 var httpclient *http.Client 12 var userAgent string 13 14 func init() { 15 userAgent = fmt.Sprintf("nsq_to_http v%s", version.Binary) 16 } 17 18 func HTTPGet(endpoint string) (*http.Response, error) { 19 req, err := http.NewRequest("GET", endpoint, nil) 20 if err != nil { 21 return nil, err 22 } 23 req.Header.Set("User-Agent", userAgent) 24 for key, val := range validCustomHeaders { 25 req.Header.Set(key, val) 26 } 27 return httpclient.Do(req) 28 } 29 30 func HTTPPost(endpoint string, body *bytes.Buffer) (*http.Response, error) { 31 req, err := http.NewRequest("POST", endpoint, body) 32 if err != nil { 33 return nil, err 34 } 35 req.Header.Set("User-Agent", userAgent) 36 req.Header.Set("Content-Type", *contentType) 37 for key, val := range validCustomHeaders { 38 req.Header.Set(key, val) 39 } 40 return httpclient.Do(req) 41 }