开发项目框架为.net framework,遇到此问题原因是笔者在做接口转发时接口返回类型直接定义为了object类型,这导致格式化返回结果时出现如标题异常,具体代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| try { var result = XXXWepApi.WebApiPost<请求参数类, object>("api/xxx接口地址", new 请求参数类()); if (result != null) { if (result.Code == "200") return SuccessResult(result.Data); else return ErrorResult("列表获取失败!", 10001); } else return ErrorResult("列表为空!", 10002); } catch (Exception ex) { Function.WriteErrorLog(ex); return ErrorResult("系统繁忙,请重新获取!", 10050); }
|
解决代码如下:转换抛出异常是因为自定义格式化方法格式化返回SuccessResult(result.Data)时抛出错误,result.Data返回时一个字符串数组,定义一个返回类即可皆解决,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| try { var result = XXXWepApi.WebApiPost<请求参数类, 【定义返回类】>("api/xxx接口地址", new 请求参数类()); if (result != null) { if (result.Code == "200") return SuccessResult(result.Data); else return ErrorResult("列表获取失败!", 10001); } else return ErrorResult("列表为空!", 10002); } catch (Exception ex) { Function.WriteErrorLog(ex); return ErrorResult("系统繁忙,请重新获取!", 10050); }
|
关于SuccessResult方法如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
[NonAction] public HttpResponseMessage SuccessResult(object data = null, string msg = "成功") { return new HttpResponseMessage { Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new ResultV2<object>() { Code = 200, Msg = msg, Data = data == null ? new { } : data }), System.Text.Encoding.UTF8, "application/json") }; }
|