private T ParseAcsResponse <T>(AcsRequest <T> request, HttpResponse httpResponse) where T : AcsResponse { FormatType?format = httpResponse.ContentType; if (httpResponse.isSuccess()) { return(ReadResponse <T>(request, httpResponse, format)); } else { AcsError error = ReadError(request, httpResponse, format); if (null != error.ErrorCode) { if (500 <= httpResponse.Status) { throw new ServerException(error.ErrorCode, error.ErrorMessage, error.RequestId); } else { throw new ClientException(error.ErrorCode, error.ErrorMessage, error.RequestId); } } else { T t = System.Activator.CreateInstance <T>(); t.HttpResponse = httpResponse; return(t); } } }
public static AcsError Unmarshall(UnmarshallerContext context) { AcsError error = new AcsError(); error.HttpResponse = context.HttpResponse; Dictionary <String, String> map = context.ResponseDictionary; error.RequestId = context.StringValue("Error.RequestId"); error.ErrorCode = context.StringValue("Error.Code"); error.ErrorMessage = context.StringValue("Error.Message"); return(error); }
public DescribeEndpointResponse DescribeEndpoint(String regionId, String locationProduct, Credential credential, LocationConfig locationConfig) { if (isEmpty(locationProduct)) { return(null); } DescribeEndpointRequest request = new DescribeEndpointRequest(); request.AcceptFormat = FormatType.JSON; request.Id = regionId; request.RegionId = locationConfig.RegionId; request.LocationProduct = locationProduct; request.EndpointType = DEFAULT_ENDPOINT_TYPE; ProductDomain domain = new ProductDomain(locationConfig.Product, locationConfig.Endpoint); try { HttpRequest httpRequest = request.SignRequest(signer, credential, FormatType.JSON, domain); HttpResponse httpResponse = HttpResponse.GetResponse(httpRequest); if (httpResponse.isSuccess()) { String data = System.Text.Encoding.UTF8.GetString(httpResponse.Content); DescribeEndpointResponse response = getEndpointResponse(data, DEFAULT_ENDPOINT_TYPE); if (null == response || isEmpty(response.Endpoint)) { return(null); } return(response); } AcsError error = readError(httpResponse, FormatType.JSON); if (500 <= httpResponse.Status) { Console.WriteLine("Invoke_Error, requestId:" + error.RequestId + "; code:" + error.ErrorCode + "; Msg" + error.ErrorMessage); return(null); } Console.WriteLine("Invoke_Error, requestId:" + error.RequestId + "; code:" + error.ErrorCode + "; Msg" + error.ErrorMessage); return(null); } catch (Exception e) { Console.WriteLine("Invoke Remote Error,Msg" + e.Message); return(null); } }