1 using Newtonsoft.Json;
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Net.Http;
6 using System.Net.Http.Headers;
7 using System.Text;
8 using System.Threading.Tasks;
9
10 namespace Services
11 {
12 public class HttpHelper<T> where T : class, new()
13 {
14 private Uri BaseUri
15 {
16 get
17 {
18 return new Uri(GlobalString.BaseUrl);
19 }
20 }
21
22 private Uri RequestUri(string requestUrl)
23 {
24
25 return new Uri(BaseUri, requestUrl);
26 }
27
28 //用Post还是用Get,要与WebApi的请求方式一致
29 public async Task<T> GetPostResult(string requestUrl, FormUrlEncodedContent content)
30 {
31 using (var client = new HttpClient())
32 {
33 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(GlobalString.JsonHeader));
34 using (var response = await client.PostAsync(RequestUri(requestUrl), content))
35 {
36 if (response.IsSuccessStatusCode)
37 {
38 var productJsonString = await response.Content.ReadAsStringAsync();
39 return JsonConvert.DeserializeObject<T>(productJsonString);
40 }
41 return new T();
42 }
43 }
44 }
45 }
46 }