/// <summary>
/// 异步GetJsonA
/// </summary>
/// <param name="url"></param>
/// <param name="encoding"></param>
/// <param name="maxJsonLength">允许最大JSON长度</param>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
/// <exception cref="ErrorJsonResultException"></exception>
public static async Task <T> GetJsonAsync <T>(string url, Encoding encoding = null, int?maxJsonLength = null)
{
string returnText = await RequestUtility.HttpGetAsync(url, encoding);
JavaScriptSerializer js = new JavaScriptSerializer();
if (maxJsonLength.HasValue)
{
js.MaxJsonLength = maxJsonLength.Value;
}
if (returnText.Contains("errcode"))
{
//可能发生错误
WxJsonResult errorResult = js.Deserialize <WxJsonResult>(returnText);
if (errorResult.errcode != ReturnCode.请求成功)
{
//发生错误
throw new ErrorJsonResultException(
string.Format("微信请求发生错误!错误代码:{0},说明:{1}",
(int)errorResult.errcode, errorResult.errmsg), null, errorResult, url);
}
}
T result = js.Deserialize <T>(returnText);
return(result);
}