这个主要用于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) ;
}
}