Exemplo n.º 1
0
        protected async Task <string> InternalRequest(AbstractModel request, string actionName)
        {
            if ((this.Profile.HttpProfile.ReqMethod != HttpProfile.REQ_GET) && (this.Profile.HttpProfile.ReqMethod != HttpProfile.REQ_POST))
            {
                throw new TencentCloudSDKException("Method only support (GET, POST)");
            }

            HttpResponseMessage response = null;

            if (ClientProfile.SIGN_SHA1.Equals(this.Profile.SignMethod) ||
                ClientProfile.SIGN_SHA256.Equals(this.Profile.SignMethod))
            {
                response = await RequestV1(request, actionName);
            }
            else
            {
                response = await RequestV3(request, actionName);
            }

            var strResp = await response.Content.ReadAsStringAsync();

            if ((int)response.StatusCode != HTTP_RSP_OK)
            {
                throw new TencentCloudSDKException(response.StatusCode + " " + strResp);
            }

            JsonResponseModel <JsonResponseErrModel> errResp = null;

            try
            {
                errResp = JsonConvert.DeserializeObject <JsonResponseModel <JsonResponseErrModel> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            if (errResp.Response.Error != null)
            {
                throw new TencentCloudSDKException($"code:{errResp.Response.Error.Code} message:{errResp.Response.Error.Message} ",
                                                   errResp.Response.RequestId);
            }

            return(strResp);
        }
Exemplo n.º 2
0
        protected string InternalRequestSync(AbstractModel request, string actionName)
        {
            if ((this.Profile.HttpProfile.ReqMethod != HttpProfile.REQ_GET) && (this.Profile.HttpProfile.ReqMethod != HttpProfile.REQ_POST))
            {
                throw new TencentCloudSDKException("Method only support (GET, POST)");
            }

            HttpWebResponse response = null;

            if (ClientProfile.SIGN_SHA1.Equals(this.Profile.SignMethod) ||
                ClientProfile.SIGN_SHA256.Equals(this.Profile.SignMethod))
            {
                response = RequestV1Sync(request, actionName);
            }
            else
            {
                response = RequestV3Sync(request, actionName);
            }

            HttpStatusCode statusCode = response.StatusCode;

            if (statusCode != HttpStatusCode.OK)
            {
                Encoding encoding = Encoding.UTF8;
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding))
                    {
                        string content = sr.ReadToEnd().ToString();
                        throw new TencentCloudSDKException(statusCode.ToString() + content);
                    }
                }
            }
            string strResp = null;

            try
            {
                Encoding encoding = Encoding.UTF8;
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding))
                    {
                        strResp = sr.ReadToEnd().ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                string responseText = ex.Message;
                throw new TencentCloudSDKException($"The API responded with HTTP {responseText}");
            }

            JsonResponseModel <JsonResponseErrModel> errResp = null;

            try
            {
                errResp = JsonConvert.DeserializeObject <JsonResponseModel <JsonResponseErrModel> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            if (errResp.Response.Error != null)
            {
                throw new TencentCloudSDKException($"code:{errResp.Response.Error.Code} message:{errResp.Response.Error.Message} ",
                                                   errResp.Response.RequestId);
            }
            return(strResp);
        }