Go使用HTTPClient发送Get Post请求
Get请求
url := c.Host + WarningNum req, err := http.NewRequest("GET", url, nil) q := req.URL.Query() q.Add("psaId", paramGet.PsaId) q.Add("paasZoneCode", paramGet.PaasZoneCode) req.URL.RawQuery = q.Encode() req.Header.Add("Content-Type", "application/json") if err != nil { return 0, err } client := &http.Client{} rsp, err := client.Do(req) if err != nil { return 0, err } defer rsp.Body.Close() if rsp.StatusCode != http.StatusOK && rsp.StatusCode != http.StatusNoContent { return 0, fmt.Errorf("http response status error code: %v", rsp.StatusCode) } var rspData new_panel.WarnNumResponse decoder := json.NewDecoder(rsp.Body) err = decoder.Decode(&rspData) if err != nil { return 0, err } if rspData.Status != "0000" { if rspData.Status == "0001" { return 0, err } else { return 0, fmt.Errorf("ClientAlertManager.GetWarnNum Error") } } return rspData.Data.TotalValue, nil
Post请求
url := c.Host + TagList bodyBytes, err := json.Marshal(param) if err != nil { return nil, err } req, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyBytes)) if err != nil { return nil, err } req.Header.Add("Content-Type", "application/json") client := &http.Client{} rsp, err := client.Do(req) if err != nil { return nil, err } defer rsp.Body.Close() if rsp.StatusCode != http.StatusOK && rsp.StatusCode != http.StatusNoContent { return nil, fmt.Errorf("http response status error code: %v", rsp.StatusCode) } var rspData new_panel.HttpClusterTagList decoder := json.NewDecoder(rsp.Body) err = decoder.Decode(&rspData) if err != nil { return nil, err } if rspData.Status != "0000" { if rspData.Status == "0001" { return nil, nil } else { return nil, fmt.Errorf("ClientMetaData.GetResourceTree") } } return rspData, nil
Get Post混合请求
url := c.Host + WarningNum bodyBytes, err := json.Marshal(paramPost) if err != nil { return 0, err } req, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyBytes)) q := req.URL.Query() q.Add("psaId", paramGet.PsaId) q.Add("paasZoneCode", paramGet.PaasZoneCode) req.URL.RawQuery = q.Encode() req.Header.Add("Content-Type", "application/json") if err != nil { return 0, err } client := &http.Client{} rsp, err := client.Do(req) if err != nil { return 0, err } defer rsp.Body.Close() if rsp.StatusCode != http.StatusOK && rsp.StatusCode != http.StatusNoContent { return 0, fmt.Errorf("http response status error code: %v", rsp.StatusCode) } var rspData new_panel.WarnNumResponse decoder := json.NewDecoder(rsp.Body) err = decoder.Decode(&rspData) if err != nil { return 0, err } if rspData.Status != "0000" { if rspData.Status == "0001" { return 0, err } else { return 0, fmt.Errorf("ClientAlertManager.GetWarnNum Error") } } return rspData.Data.TotalValue, nil