当前位置: 首页 > 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; 
http://www.xdnf.cn/news/99019.html

相关文章:

  • 【速写】hook与fx
  • UML设计系列(9):开发过程中如何应用UML
  • uniapp跳转和获取参数方式
  • 【学习准备】算法和开发知识大纲
  • Kubelet 可观测性最佳实践
  • Ubuntu 20.04 安装Docker 全过程
  • 大厂Java面试:JVM调优与问题定位
  • 教育平台项目实战(从0到1)
  • spark—kafka
  • 铆钉连接的一些参数
  • SpringBoot项目,密码加密之“BCrypt加密”
  • 使用 Streamlit 打造一个简单的照片墙应用
  • 前端渲染pdf文件解决方案-pdf.js
  • 为什么圆形在GeoJSON中被表示为多边形(Polygon)而不是圆形类型
  • 【OSCP-vulnhub】Raven-2
  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • arm64适配系列文章-第一章-arm64环境上kubesphere和k8s的部署
  • mybatis xml中特殊字符处理
  • 【k8s】Taint污点)、Toleration(容忍)
  • HCIA-Access V2.5_18_网络管理基础_1_网络管理系统架构
  • 去年15天背完高项重点,成功上岸
  • H5S 寒武纪GPU转码
  • 约束constraint
  • PHP 反序列化原生类 TIPS字符串逃逸CVE 绕过漏洞属性类型特征
  • 车载功能测试-车载域控/BCM控制器测试用例开发流程【用例导出方法+优先级划分原则】
  • Linux内核源码结构
  • 数智化浪潮下,智能外呼系统如何重塑沟通格局
  • WinForm实现管理员权限运行的方式
  • 外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径
  • 【论文阅读】Visual Instruction Tuning