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)); }
/// <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); }
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))); }