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  }