public class HttpJsonContent : StringContent
{
public HttpJsonContent(object obj) :
base(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")
{ }
}
public class WebApiService
{
public static string APIConnection(string APIHost,string APIRoute, object PostData,string ContentType= "application/json", string MethodType="POST", string TokenHeader= "Authorization", string APIToken="")
{
var result = "";
if (string.IsNullOrEmpty(APIHost)||string.IsNullOrEmpty(APIRoute))
{
return result;
}
try
{
using (var client = new HttpClient())
{
if (!string.IsNullOrEmpty(APIToken)&&!string.IsNullOrEmpty(TokenHeader))
{
client.DefaultRequestHeaders.Add(TokenHeader, APIToken);
}
var url = APIHost + APIRoute;
HttpResponseMessage response = null;
switch (MethodType)
{
case "POST":
using (HttpContent httpContent = new HttpJsonContent(PostData))
{
response = client.PostAsync(url, httpContent).Result;
//确保Http响应成功
if (response.IsSuccessStatusCode)
{
result = response.Content.ReadAsStringAsync().Result;
}
}
break;
case "GET":
response = client.GetAsync(url).Result;
result = response.Content.ReadAsStringAsync().Result;
break;
default:
break;
}
}
}
catch (Exception ex)
{
return result;
}
return result;
}
}