go http get 请求实现

主要记录的功能点

  • 设置Header
  • 解析返回的消息体,获取需要的那部分

服务侧的返回消息体

{
    "success": true,
    "message": "OK",
    "data": {
        "name": "xxx",
        "hostName": "xxxxx",
      "status": 0,
        "statusTime": "2020-08-06 15:04:18",
"disable": false, "instanceType": "host", "podId": null, "containerList": null }, "retcode": 0 }

客户端请求

func queryInstance(instanceName string) {
    url:="xxxxx"
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        fmt.Println(err)
    }
// 设置Header req.Header.Set(
"token", "XXXX") req.Header.Set("Content-Type", "application/json;charset=UTF-8") client := &http.Client{} resp, _ := client.Do(req) body, _ := ioutil.ReadAll(resp.Body)
  // 只定义需要获取的那部分消息体的结构 type Data struct { HostName string `json:
"hostName"` } type Response struct { Success bool `json:"success"` Data Data `json:"data"` } response := Response{}
// 解析json数据并将数据存储在response结构体中 json.Unmarshal(body,
&response)
   fmt.Println(response) fmt.Println(response.Data.HostName) }

打印结果

{true {test.hsotname1}}
test.hsotname1

 

posted @ 2020-08-06 17:13  西橙  阅读(1642)  评论(0编辑  收藏  举报