package main
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"net/http"
"time"
)
func main() {
params :=map[string]string{
"name":"yuyu",
}
res,err := httpDo("https://test.pet-dbc.cn/api/user/info","GET",
params,nil,nil)
if err != nil{
fmt.Println(err)
}
fmt.Println(res)
herders :=map[string]string{
"Authorization":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyMywiZXhwIjoxODc1MDAwNTI2LCJpc3MiOiJkYmMifQ.Jxw5fwgT2GJDVM3gXLPqv01L2hi7Uf_HjM7F70AopRs",
}
type Data struct {
UserId int64 `json:"user_id"`
OrderStatus int64 `json:"order_status"`
PageSizeNum int64 `json:"page_size_num"`
Current int64 `json:"current"`
}
data := Data{
16,0,10,1}
body,_ := json.Marshal(data)
res,err = httpDo("https://test.pet-dbc.cn/api/user/info","POST",
nil,herders,body)
if err != nil{
fmt.Println(err)
}
fmt.Println(res)
}
func httpDo(url, method string, params,headers map[string]string,data []byte)(interface{
}, error) {
client := &http.Client{
Timeout: 5 * time.Second,
}
req, err := http.NewRequest(method, url, bytes.NewBuffer(data))
if err != nil {
return nil, errors.New("new request is fail: %v \n")
}
req.Header.Set("Content-type", "application/json")
q := req.URL.Query()
if params != nil {
for key, val := range params {
q.Add(key, val)
}
req.URL.RawQuery = q.Encode()
}
if headers != nil {
for key, val := range headers {
req.Header.Add(key, val)
}
}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
temp := make(map[string]interface{
}, 0)
err = json.Unmarshal(body, &temp)
if err != nil {
return nil, err
}
return temp,nil
}