github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/http/cli/cli.go (about) 1 package cli 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 txpool "github.com/sixexorg/magnetic-ring/txpool/mainchain" 8 "io/ioutil" 9 "net/http" 10 "time" 11 ) 12 13 func HttpSend(fullurl string, request interface{}) (string, error) { 14 fmt.Printf("test req fullurl=%s\n",fullurl) 15 reqbuf, err := json.Marshal(request) 16 if err != nil { 17 return "", err 18 } 19 20 buffer := bytes.NewBuffer(reqbuf) 21 req, err := http.NewRequest("POST", fullurl, buffer) 22 if err != nil { 23 return "", err 24 } 25 req.Header.Set("Content-Type", "application/json;charset=UTF-8") 26 client := http.Client{} 27 client.Timeout = time.Second * 3 28 resp, err := client.Do(req) 29 if err != nil { 30 return "", err 31 } 32 buf, err := ioutil.ReadAll(resp.Body) 33 if err != nil { 34 return "", err 35 } 36 respobj := new(txpool.TxResp) 37 err = json.Unmarshal(buf, respobj) 38 if err != nil { 39 return "", err 40 } 41 return string(buf), nil 42 43 }