Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        /// <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);
        }