1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package util
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- )
- // GetHTTPResponse 处理HTTP结果,返回序列化的json
- func GetHTTPResponse(resp *http.Response, url string, err error, result interface{}) error {
- body, err := GetHTTPResponseOrg(resp, url, err)
- if err == nil {
- // log.Println(string(body))
- err = json.Unmarshal(body, &result)
- if err != nil {
- log.Printf("请求接口%s解析json结果失败! ERROR: %s\n", url, err)
- }
- }
- return err
- }
- // GetHTTPResponseOrg 处理HTTP结果,返回byte
- func GetHTTPResponseOrg(resp *http.Response, url string, err error) ([]byte, error) {
- if err != nil {
- log.Printf("请求接口%s失败! ERROR: %s\n", url, err)
- return nil, err
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Printf("请求接口%s失败! ERROR: %s\n", url, err)
- }
- // 300及以上状态码都算异常
- if resp.StatusCode >= 300 {
- errMsg := fmt.Sprintf("请求接口 %s 失败! 返回内容: %s ,返回状态码: %d\n", url, string(body), resp.StatusCode)
- log.Println(errMsg)
- err = fmt.Errorf(errMsg)
- }
- return body, err
- }
|