package httplib import ( "bytes" "io/ioutil" "net/http" "time" jsoniter "github.com/json-iterator/go" ) // PostJSON 方法废弃,后面都使用beego的那些方法,beego的httplib做了改动,会复用transport func PostJSON(url string, timeout time.Duration, v interface{}, headers map[string]string) (response []byte, code int, err error) { var bs []byte var json = jsoniter.ConfigCompatibleWithStandardLibrary bs, err = json.Marshal(v) if err != nil { return } bf := bytes.NewBuffer(bs) client := http.Client{ Timeout: timeout, } req, err := http.NewRequest("POST", url, bf) req.Header.Set("Content-Type", "application/json") if headers != nil { for k, v := range headers { req.Header.Add(k, v) } } var resp *http.Response resp, err = client.Do(req) if err != nil { return } code = resp.StatusCode if resp.Body != nil { defer resp.Body.Close() response, err = ioutil.ReadAll(resp.Body) } return }