这个主要用于WebApi和MVC进行交互桥梁的一种方法
public class HttpClientHelper
{
public HttpClientHelper(string baseAddr)
{
this.BaseAddr = baseAddr;
}
public string BaseAddr { get; set; }
public string Get(string Url)
{
HttpClient client = new HttpClient();
client.BaseAddress=newUri(BaseAddr);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage msg = client.GetAsync(Url).Result;
if (msg.IsSuccessStatusCode)
{
return msg.Content.ReadAsStringAsync().Result;
}
return "";
}
public string Delete(string Url)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(BaseAddr);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage msg = client.DeleteAsync(Url).Result;
if (msg.IsSuccessStatusCode)
{
return msg.Content.ReadAsStringAsync().Result;
}
return "";
}
public string Post(string Url,string JsonData)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(BaseAddr);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpContent content = new StringContent(JsonData);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage msg = client.PostAsync(Url,content).Result;
if (msg.IsSuccessStatusCode)
{
return msg.Content.ReadAsStringAsync().Result;
}
return "";
}
public string Put(string Url, string JsonData)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(BaseAddr);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpContent content = new StringContent(JsonData);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage msg = client.PutAsync(Url, content).Result;
if (msg.IsSuccessStatusCode)
{
return msg.Content.ReadAsStringAsync().Result;
}
return "";
}
public T Request<T>(string type, string url, object data = null)
{
string json = JsonConvert.SerializeObject(data);
string result = "";
switch (type)
{
case "Get":
result = Get(url);
break;
case "Post":
result = Post(url, json);
break;
case "Put":
result = Put(url, json);
break;
case "Delete":
result = Delete(url);
break;
}
return JsonConvert.DeserializeObject<T>(result);
}
}