获取返回值并对返回值做统一处理
public void OnResultExecuting(ResultExecutingContext context)
{
Console.WriteLine(context.Result);
if (context.Result is ObjectResult result)
{
string resObj = JsonConvert.SerializeObject(result.Value);
if (resObj.Contains("-500"))
{
context.Result = ErrorObjectConversion(resObj, context);
}
}
}
private JsonResult ErrorObjectConversion(string resObj, ResultExecutingContext context)
{
JsonResult jsonResult = null;
if (resObj.Contains("ErrMsg") && resObj.Contains("ErrCode"))
{
DataResult<object> dataResult = JsonConvert.DeserializeObject<DataResult<object>>(resObj);
if (dataResult.ErrCode == -500)
{
Console.WriteLine($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
dataResult.ErrMsg = $"接口{context.HttpContext.Request.Path.Value.ToString()}请求失败!";
_hub.SendMessage($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
jsonResult = new JsonResult(dataResult);
}
}
else if (resObj.Contains("Results") && resObj.Contains("Msg"))
{
ListResult<object> listResult = JsonConvert.DeserializeObject<ListResult<object>>(resObj);
if (listResult.Code == -500)
{
listResult.Msg = $"接口{context.HttpContext.Request.Path.Value.ToString()}请求失败!";
Console.WriteLine($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
_hub.SendMessage($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
jsonResult = new JsonResult(listResult);
}
}
else if (resObj.Contains("Data") && resObj.Contains("Msg"))
{
ErrData<object> ErrResult = JsonConvert.DeserializeObject<ErrData<object>>(resObj);
if (ErrResult.Code == -500)
{
ErrResult.Msg = $"接口{context.HttpContext.Request.Path.Value.ToString()}请求失败!";
Console.WriteLine($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
_hub.SendMessage($"{context.HttpContext.Request.Path.Value.ToString()}接口请求接收到异常信息:" + resObj);
jsonResult = new JsonResult(ErrResult);
}
}
return jsonResult;
}