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  }