当前位置: 首页 > news >正文

MVCWebAPI使用FromBody接受对象的方法

近期在做软件升级操作的时候突然想着需要的参数比较多,如果需要参数的话参数比较多,所有想着使用frombody来集合数据统一操作做了个样张希望对您有帮助
代码如下:

 /// <summary>/// 入口当前文件接口下的操作数据/// </summary>/// <param name="ModelIn">入口数据</param>/// <returns></returns>[System.Web.Http.HttpPost]public JsonResult<ResultMsgWeb> GetSoftWareLastModel([FromBody]GetLastTBInfos ModelIn){ResultMsgWeb thisMsg = new ResultMsgWeb { Code = 0, CreateDate = DateTime.Now, Msg = "未操作" };if (ModelIn != null){UserInfo ThisUser = new UserInfo() { UserName = ModelIn.UserName, Pwd = ModelIn.Pwd };UserInfo GetUser = new DAL.DALUserInfo().GetModelByParm(ThisUser, "UserName", "Pwd");if (GetUser != null){SoftUpTB ThisUpdateModel = new DAL.DALSoftUpTB().GetLastModelByGuid(ModelIn.SoftGuid);ThisUpdateModel.VisiteUserId = GetUser.Id ;if (ThisUpdateModel != null){Version ClientVersionV = new Version(ModelIn.ClientVersion);Version VersionMax = new Version(ThisUpdateModel.SoftVersion);if (ClientVersionV < VersionMax){ thisMsg.Code = 200;thisMsg.Msg = $"数据库中最大版本是{ThisUpdateModel.SoftVersion},可以更新!";}else{ thisMsg.Code = 250;thisMsg.Msg = $"数据库中最大版本是{ThisUpdateModel.SoftVersion},与本地{ModelIn.ClientVersion}更新不匹配,不能更新";}thisMsg.Datas = JsonConvert.SerializeObject(ThisUpdateModel); }else{thisMsg.Code = 404;thisMsg.Msg = "未发现数您guid的数据";} }else{thisMsg.Code = 500;thisMsg.Msg = "未找到对应的用户";}}else{thisMsg.Code = 404;thisMsg.Msg = "解析数据为空";}return Json<ResultMsgWeb>(thisMsg); }

其中winform端访问的代码为(使用 RestSharp 包操作 Apifox 自动生成的代码 使用x-www-form-urlencoded 传送参数 ):

  /// <summary>/// /// </summary>/// <param name="ModelIn"></param>/// <returns></returns>public ResultMsg CheckVersionByTBInfos(GetLastTBInfos ModelIn){ResultMsg MsgOut = new ResultMsg() { Success = false, ErrMsg = "未操作" };if (ModelIn != null && !string.IsNullOrWhiteSpace(GModel.MainAPIHead)){var client = new RestClient($"{GModel.MainAPIHead}/api/UpdateSoftMain/GetSoftWareLastModel");client.Timeout = -1;var request = new RestRequest(Method.POST);client.UserAgent = "Apifox/1.0.0 (https://apifox.com)";request.AddParameter("UserName",ModelIn.UserName);request.AddParameter("Pwd",ModelIn.Pwd);request.AddParameter("SoftGuid",ModelIn.SoftGuid);request.AddParameter("ClientVersion",ModelIn.ClientVersion);try{IRestResponse response = client.Execute(request);if (!string.IsNullOrWhiteSpace(response.Content)){ResultMsgWeb ThisMsgWeb = JsonConvert.DeserializeObject<ResultMsgWeb>(response.Content);if (ThisMsgWeb != null){if (ThisMsgWeb.Code == 200)//200 是正常反馈可以更新下载操作{MsgOut.Success = true; MsgOut.ReturnString = ThisMsgWeb.Datas.ToString();}else{MsgOut.Success = false; }MsgOut.ErrId = ThisMsgWeb.Code;MsgOut.ErrMsg = ThisMsgWeb.Msg;}else{MsgOut.Success = false;MsgOut.ErrMsg = $"解析失败:反馈内容是{response.Content}";}}else{MsgOut.Success = false;MsgOut.ErrMsg = $"解析失败:内容未获取";}}catch (Exception ex){MsgOut.Success = false;MsgOut.ErrMsg = $"操作失败:{ex.Message}{ex.StackTrace}";} }else{MsgOut.Success = false;MsgOut.ErrMsg = $"传入参数为空,或者配置文件读取为空{GModel.MainAPIHead}";}LogWrite.WriteLog(MsgOut.ErrMsg);return MsgOut;}

MVCWebAPI 获取 客户端IP地址的方法:

  ModelIn.ClientIP = HttpContext.Current.Request.UserHostAddress; 

路由配置方法:

 public static void Register(HttpConfiguration config){// Web API 配置和服务// Web API 路由config.MapHttpAttributeRoutes();config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional });}

相关文章:

  • Windows上使用Python 3.10结合Appium-实现APP自动化
  • Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南
  • 2025.04.23华为机考第一题-100分
  • 数据库1个
  • Vue3速通笔记
  • QT软件安装(12)
  • VBA批量读取access数据库(.mdb)
  • 淘宝平台关键字搜索接口接入指南(含代码示例及商品标题解析)
  • 机器学习分类算法详解:原理、应用场景与测试用例
  • 海思SDK的sensor驱动框架
  • Linux423 删除用户
  • 第六章:Multi-Backend Configuration
  • 【Redis】redis主从哨兵
  • 测试基础笔记第十天
  • cgdb的基础使用教程
  • 夏季跑步注意
  • 数据库--页(page)
  • UniOcc:自动驾驶占用预测和预报的统一基准
  • CPP_类和对象
  • 智能外呼系统的技术演进与多场景落地实践
  • 商务部谈中欧汽车谈判进展
  • 马上评丨老师要求犯错学生当众道歉,不该成被告
  • 嫦娥五号月球样品将借给这些国家机构
  • 山西省朔州市政府党组成员、副市长李润军接受审查调查
  • 荣盛发展:拟以酒店、代建等轻资产板块业务搭建平台,并以其股权实施债务重组
  • 金地集团:保交楼为经营的首要任务,将根据融资性现金流恢复程度等进行投资决策