[英]How to read error from HTTP response body
这是错误的样子,尝试fmt.Println(err)
时只需要"Body"
fmt.Println(err)
安慰
Expected HTTP response code [200] when accessing [POST http://controller:8774/v2.1/os-keypairs], but got 409 instead
{"conflictingRequest": {"message": "Key pair 'Darkhaa test hi' already exists.", "code": 409}}
控制者
createKeyPair, err := compute.CreateKeypair(raw["keyPairName"].(string))
if err != nil {
fmt.Println(err)
lists["retType"] = -1
lists["retDesc"] = err
} else {
lists["retType"] = 0
lists["retDesc"] = ""
lists["retData"] = createKeyPair
}
i.Data["json"] = lists
type ErrorStruct struct {
ConflictingRequest struct {
Message string `json:"message"`
Code int `json:"code"`
} `json:"conflictingRequest"`
}
go func() {
_, err := compute.CreateKeypair(raw["keyPairName"].(string))
if err != nil {
re := regexp.MustCompile("\\{(.*?)\\}")
match := re.FindStringSubmatch(err.Error())
data := ErrorStruct{}
json.Unmarshal([]byte(match[1]), data)
log.Printf("Message: %s", data.Message)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.