Exemple #1
0
            public object Decoder(ResponseTemplate responseTemplate, Type type)
            {
                if (responseTemplate.HttpStatusCode == HttpStatusCode.NotFound ||
                    responseTemplate.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    return(type.GetDefaultValue());
                }

                if (responseTemplate.Body == null)
                {
                    return(null);
                }
                var body = responseTemplate.Body;
                var str  = body.ConvertToString();

                return(JsonConvert.DeserializeObject(str, type));
            }
Exemple #2
0
            /// <summary>
            /// 把httpResponseMessage转化为responseTemplate
            /// </summary>
            /// <param name="responseMessage"></param>
            /// <returns></returns>
            private async Task <ResponseTemplate> ConvertResponseAsync(HttpResponseMessage responseMessage)
            {
                var responseTemplate = new ResponseTemplate
                {
                    HttpStatusCode = responseMessage.StatusCode
                };

                var headers = responseMessage.Headers;

                foreach (var httpResponseHeader in headers)
                {
                    responseTemplate.Headers.Add(httpResponseHeader);
                }

                var stream = new MemoryStream();
                await responseMessage.Content.CopyToAsync(stream);

                stream.Seek(0, SeekOrigin.Begin);
                responseTemplate.Body = stream;
                return(responseTemplate);
            }
Exemple #3
0
            public object Decoder(ResponseTemplate responseTemplate, Type type)
            {
                if (responseTemplate.HttpStatusCode == HttpStatusCode.NotFound ||
                    responseTemplate.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    return(type.GetDefaultValue());
                }

                if (responseTemplate.Body == null)
                {
                    return(null);
                }

                var body = responseTemplate.Body;
                var str  = body.ConvertToString();

                if (responseTemplate.HttpStatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(str);
                }

                //var json = new JsonSerializer().Deserialize(new JsonTextReader(new StringReader(str)), type)
                return(JsonConvert.DeserializeObject(str, type));
            }
 public T Decoder <T>(ResponseTemplate responseTemplate)
 {
     return((T)this.Decoder(responseTemplate, typeof(T)));
 }