github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/internal/debug/api/debug.go (about) 1 //go:build wechat_debug 2 // +build wechat_debug 3 4 package api 5 6 import ( 7 "bytes" 8 "encoding/json" 9 "io" 10 "io/ioutil" 11 "log" 12 ) 13 14 func DebugPrintGetRequest(url string) { 15 log.Println("[WECHAT_DEBUG] [API] GET", url) 16 } 17 18 func DebugPrintPostJSONRequest(url string, body []byte) { 19 const format = "[WECHAT_DEBUG] [API] JSON POST %s\n" + 20 "http request body:\n%s\n" 21 22 buf := bytes.NewBuffer(make([]byte, 0, len(body)+1024)) 23 if err := json.Indent(buf, body, "", " "); err == nil { 24 body = buf.Bytes() 25 } 26 log.Printf(format, url, body) 27 } 28 29 func DebugPrintPostMultipartRequest(url string, body []byte) { 30 log.Println("[WECHAT_DEBUG] [API] multipart/form-data POST", url) 31 } 32 33 func DecodeJSONHttpResponse(r io.Reader, v interface{}) error { 34 body, err := ioutil.ReadAll(r) 35 if err != nil { 36 return err 37 } 38 39 body2 := body 40 buf := bytes.NewBuffer(make([]byte, 0, len(body2)+1024)) 41 if err := json.Indent(buf, body2, "", " "); err == nil { 42 body2 = buf.Bytes() 43 } 44 log.Printf("[WECHAT_DEBUG] [API] http response body:\n%s\n", body2) 45 46 return json.Unmarshal(body, v) 47 }