/// <summary> /// 异步GET请求获取数据 /// </summary> /// <typeparam name="T">响应正文需要反序列化成的类型</typeparam> /// <param name="url">请求的伪URL</param> /// <param name="requestHeaders">请求报文头</param> /// <returns>异步返回ResponseEntity<T>类型</returns> public async Task <ResponseEntity <T> > GetResponseEntityAsync <T>(String url, HttpRequestHeaders requestHeaders = null) { if (string.IsNullOrEmpty(url)) { return(null); } using (HttpRequestMessage hrm = await GetHttpRequestMessageAsync(url, HttpMethod.Get, null, requestHeaders)) { ResponseEntity <T> resp = await SendRequestAsync <T>(hrm); return(resp); } }
/// <summary> /// http基方法:请求数据 /// </summary> /// <typeparam name="T">希望响应正文被解析成合众数据类型</typeparam> /// <param name="requestMsg">请求的数据报文体</param> /// <returns>异步返回ResponseEntity<T>类型</returns> private async Task <ResponseEntity <T> > SendRequestAsync <T>(HttpRequestMessage requestMsg) { ResponseEntity <T> resp = new ResponseEntity <T>(); HttpResponseMessage result = await _httpClient.SendAsync(requestMsg);//获取响应报文 resp.StatusCode = result.StatusCode; resp.Headers = result.Headers; if (resp.StatusCode == System.Net.HttpStatusCode.OK) { string body = await result.Content.ReadAsStringAsync(); //反序列化 T t = JsonConvert.DeserializeObject <T>(body); resp.Body = t; } return(resp); }