package dbapi import ( "bytes" "encoding/json" "io/ioutil" "log" "net/http" "time" ) const ( BASIC_URL = "http://192.168.1.182:8000" ) //发起GET请求 func DoGetRequest(url string, params map[string]string, headers map[string]string) ([]byte, error) { var body []byte request, err := http.NewRequest("GET", url, nil) if err != nil { log.Println(err) return body, err } // add params query := request.URL.Query() if params != nil { for key, val := range params { query.Add(key, val) } request.URL.RawQuery = query.Encode() } //add headers client := &http.Client{} log.Printf("Go GET URL : %s \n", request.URL.String()) resp, err := client.Do(request) if err != nil { return body, err } defer resp.Body.Close() body, err = ioutil.ReadAll(resp.Body) if err != nil { return body, err } return body, nil } //发起POST请求 func DoPostRequest(url string, body map[string]string, params map[string]string, headers map[string]string) ([]byte, error) { var resultByte []byte var bodyJson []byte if body != nil { var err error bodyJson, err = json.Marshal(body) if err != nil { log.Println(err) return resultByte, err } } request, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyJson)) if err != nil { log.Println(err) return resultByte, err } request.Header.Set("Content-type", "application/json") //add params q := request.URL.Query() if params != nil { for key, val := range params { q.Add(key, val) } request.URL.RawQuery = q.Encode() } // add headers if headers != nil { for key, val := range headers { request.Header.Add(key, val) } } client := &http.Client{} resp, err := client.Do(request) if err != nil { return resultByte, err } defer resp.Body.Close() resultByte, err = ioutil.ReadAll(resp.Body) if err != nil { return resultByte, err } return resultByte, nil } func DoRequest(request *http.Request, contentType string) ([]byte, error) { var body []byte request.Header.Add("Content-Type", contentType) timeout := time.Duration(5 * time.Second) //超时时间50ms client := &http.Client{Timeout: timeout} resp, err := client.Do(request) if err != nil { return body, err } defer resp.Body.Close() body, err = ioutil.ReadAll(resp.Body) if err != nil { return body, err } return body, nil }