From aeaead4bd2952d441ca97d9c403e167f9d4fd590 Mon Sep 17 00:00:00 2001 From: p_hdongding Date: Fri, 21 Jan 2022 16:45:28 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=B7=BB=E5=8A=A0cmq=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tencentcloud/common/http/response.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tencentcloud/common/http/response.go b/tencentcloud/common/http/response.go index 8073be563c..51bdc4b7a8 100644 --- a/tencentcloud/common/http/response.go +++ b/tencentcloud/common/http/response.go @@ -4,6 +4,8 @@ import ( "encoding/json" "fmt" "io/ioutil" + "strconv" + //"log" "net/http" @@ -33,6 +35,12 @@ type DeprecatedAPIErrorResponse struct { CodeDesc string `json:"codeDesc"` } +type CMQAPIErrorResponse struct { + Code int `json:"code"` + Message string `json:"message"` + RequestId string `json:"requestId"` +} + func (r *BaseResponse) ParseErrorFromHTTPResponse(body []byte) (err error) { resp := &ErrorResponse{} err = json.Unmarshal(body, resp) @@ -44,6 +52,16 @@ func (r *BaseResponse) ParseErrorFromHTTPResponse(body []byte) (err error) { return errors.NewTencentCloudSDKError(resp.Response.Error.Code, resp.Response.Error.Message, resp.Response.RequestId) } + cmqResp := &CMQAPIErrorResponse{} + err = json.Unmarshal(body, cmqResp) + if err != nil { + msg := fmt.Sprintf("Fail to parse json content: %s, because: %s", body, err) + return errors.NewTencentCloudSDKError("ClientError.ParseJsonError", msg, "") + } + if cmqResp.RequestId != "" { + return errors.NewTencentCloudSDKError(strconv.Itoa(cmqResp.Code), cmqResp.Message, cmqResp.RequestId) + } + deprecated := &DeprecatedAPIErrorResponse{} err = json.Unmarshal(body, deprecated) if err != nil { @@ -67,6 +85,16 @@ func ParseErrorFromHTTPResponse(body []byte) (err error) { return errors.NewTencentCloudSDKError(resp.Response.Error.Code, resp.Response.Error.Message, resp.Response.RequestId) } + cmqResp := &CMQAPIErrorResponse{} + err = json.Unmarshal(body, cmqResp) + if err != nil { + msg := fmt.Sprintf("Fail to parse json content: %s, because: %s", body, err) + return errors.NewTencentCloudSDKError("ClientError.ParseJsonError", msg, "") + } + if cmqResp.RequestId != "" { + return errors.NewTencentCloudSDKError(strconv.Itoa(cmqResp.Code), cmqResp.Message, cmqResp.RequestId) + } + deprecated := &DeprecatedAPIErrorResponse{} err = json.Unmarshal(body, deprecated) if err != nil {