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