1.Get请求函数
/// <summary>
/// Get请求
/// </summary>
/// <typeparam name="T">请求返回泛型</typeparam>
/// <param name="url">请求地址</param>
/// <returns>返回ApiResult泛型</returns>
public static ApiResult<T> GetResponseJson<T>(string url)
{
try
{
var requestUrl = $"{Parameter.Param.SrvUrl}{url}";//请求地址
if (url.StartsWith("http", StringComparison.OrdinalIgnoreCase))
requestUrl = url;
var response = MyHttpClient.GetAsync(requestUrl).Result;
return ApiResult<T>.GetResult(response);
}
catch (Exception ee)
{
//HxLog.Error($"获取{url}错误",ee);
return new ApiResult<T>($"get {url} 错误{ee.Message}");
}
}
2.Post请求函数
/// <summary>
/// Post请求
/// </summary>
/// <param name="url">调用的Api地址</param>
/// <param name="para">表单数据(json)</param>
/// <returns>返回ApiResult泛型</returns>
public static ApiResult<T> PostResponseJson<T>(string url, dynamic para)
{
try
{
HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(para, Formatting.None));
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var requestUrl = $"{Parameter.Param.SrvUrl}{url}";//请求地址
if (url.StartsWith("http", StringComparison.OrdinalIgnoreCase))
requestUrl = url;
var response = MyHttpClient.PostAsync($"{requestUrl}", httpContent).Result;
return ApiResult<T>.GetResult(response);
}
catch (Exception ee)
{
HxLog.Error($"提交{url}错误", ee);
return new ApiResult<T>($"post {url} 错误{ee.Message}");
}
}
/// <summary>
/// 请求构造
/// </summary>
private static HttpClient _httpClient;
private static HttpClient MyHttpClient
{
get
{
if (_httpClient != null) return _httpClient;
_httpClient = new HttpClient();
MyHttpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
return _httpClient;
}
}
/// <summary>
/// 获取请求结果
/// </summary>
public static ApiResult<T> GetResult(HttpResponseMessage response)
{
var strr = "";
if (!response.IsSuccessStatusCode) return new ApiResult<T>($"StatusCode:{response.StatusCode}");
try
{
var responseJson = response.Content.ReadAsStringAsync().Result;
var v = JObject.Parse(responseJson);
strr = v["Data"].ToString();
if (!strr.StartsWith("{")) strr = "\"" + strr + "\"";
var vv = JsonConvert.DeserializeObject<T>(strr);
var ret = new ApiResult<T>(
(bool)v["Success"],
vv,
(string)v["Message"],
(string)v["Description"]);
return ret;
}
catch (Exception ee)
{
HxLog.Error($"解析json错误:{ee.Message}\r\n{typeof(T).Name}:{strr}");
}
return new ApiResult<T>($"StatusCode:{response.StatusCode}");
}
}