示例#1
0
        public T GetDataFromUrl<T>(string url)
        {
            var httpClientConfig = new HttpClientConfig
            {
                BaseAddress = new Uri(url),
                RequestUri = string.Empty
            };
            httpClientConfig.AcceptHeaders.Add(new MediaTypeWithQualityHeaderValue(Constants.JsonContentType));
            httpClientConfig.UserAgentHeaders.Add(new KeyValuePair<string, string>(Constants.UserAgentHeaderKey, string.Empty));

            return _httpReponseProvider.GetResponse<T>(httpClientConfig).Result;
        }
        public async Task <T> GetResponse <T>(HttpClientConfig httpClientConfig)
        {
            HttpResponseMessage httpResponseMessage;

            using (var client = new HttpClient())
            {
                client.BaseAddress = httpClientConfig.BaseAddress;

                httpClientConfig.AcceptHeaders.ForEach(x => client.DefaultRequestHeaders.Accept.Add(x));
                httpClientConfig.UserAgentHeaders.ForEach(x => client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue(x.Key, x.Value)));

                httpResponseMessage = await client.GetAsync(httpClientConfig.RequestUri).ConfigureAwait(false);
            }

            if (!httpResponseMessage.IsSuccessStatusCode)
            {
                return(await Task.FromResult(default(T)));
            }

            return(await httpResponseMessage.Content.ReadAsAsync <T>());
        }