in internal/openapi/client.go [397:455]
func (c *Client) sendRequest(url string, request BaseRequest) ([]byte, error) {
// Fill in initialization parameters
if c.groupId != "" {
request.setGroupId(c.groupId)
}
if c.namespace != "" {
request.setNamespace(c.namespace)
}
if c.namespaceSource != "" {
request.setGroupId(c.namespaceSource)
}
if c.userId != "" {
request.setParam("userId", c.userId)
}
if c.userName != "" {
request.setParam("userName", c.userName)
}
if c.userId != "" && c.userName != "" {
request.setParam("user", c.userName+" "+c.userId)
} else {
user := "openapi"
if c.user != "" {
user = c.user
}
request.setParam("user", user)
}
// Required parameter verification
if !c.validateRequiredParam() {
return nil, errors.New("Missing required param. ")
}
// Fill headers
headers := c.genHeaders()
logger.Infof("SendRequest url: %s, request params: %+v, headers: %+v", url, request.getParams(), headers)
postBody, _ := json.Marshal(request.getParams())
req, err := http.NewRequest("POST", url, bytes.NewBuffer(postBody))
if err != nil {
return nil, fmt.Errorf("HTTP NewRequest failed, err=%s ", err.Error())
}
req.Header.Set("Content-Type", "application/json")
for k, v := range headers {
req.Header.Set(k, v)
}
resp, err := c.httpClient.Do(req)
if err != nil {
return nil, fmt.Errorf("HTTP post failed, err=%s ", err.Error())
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("Read http post response failed, err=%s ", err.Error())
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("Read http post response failed, statusCode=%s ", resp.Status)
}
return body, nil
}