1. 创建WebApi项目

  1. Web API 配置和服务

    App_start ——> WebApiConfig.cs

  config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "service/{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional });config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
  1. 封装公用方法

    Models——>Helper
    HttpHelper.cs

   public class HttpHelper{public static HttpResponseMessage StringNoAes(string str){return new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "text/plain") };}}
Models——>ResponresponseApi.cs  返回格式json
  public class ResponseApi{/// <summary>/// 数据/// </summary>public object data { get; set; }/// <summary>/// 获取成功/// </summary>public bool success { get; set; }/// <summary>/// 正确信息/// </summary>public string msg { get; set; }}
Models——>ModeGetPost.cs   //Get Post 接收数据OnLineClass.cs //用于接收数据 json解析
public class GetPost{public static string GetHttpRequestData(){var data = "";switch (HttpContext.Current.Request.HttpMethod){case "POST":data = HttpUtility.UrlDecode(Convert.ToString(HttpContext.Current.Request.Form["data"]));break;case "GET":data = HttpUtility.UrlDecode(Convert.ToString(HttpContext.Current.Request.QueryString["data"]));break;}return data;}
 public class OnLineClass{public string merid { get; set; }public string name { get; set; }public MqueryMemberfields fields { get; set; } = new MqueryMemberfields();}public class MqueryMemberfields{/// <summary>/// 卡的状态/// </summary>public string cardStatus { get; set; }}
  1. 控制器 Controllers
    Controllers——>UserInfoController.cs
 public class UserInfoController : ApiController{/// <summary>/// 测试接口/// </summary>/// <returns></returns>[HttpGet,HttpPost]public HttpResponseMessage ApiCs(){var data = GetPost.GetHttpRequestData();Log4Helper.YLLog("data=>" + data);ResponseApi responseApi = new ResponseApi();OnLineClass onlin = null;try{onlin = JsonConvert.DeserializeObject(data, typeof(OnLineClass)) as OnLineClass;if (!string.IsNullOrEmpty(onlin.merid)){//JObject array = new JObject();//array.Add("merid", onlin.merid.ToString());//array.Add("name", onlin.name.ToString());//responseApi.msg = "成功";//responseApi.success = true;//responseApi.data = array;OnLineClass onLine = new OnLineClass();onLine.merid = onlin.merid.ToString();onLine.name = onlin.name.ToString();onLine.fields.cardStatus = "0";responseApi.msg = "成功";responseApi.success = true;responseApi.data = onLine;}else {responseApi.msg = "商户不存在";responseApi.success = false;}}catch (Exception ex) {responseApi.msg = "err:" + ex.Message;responseApi.success = false;}var content = JsonConvert.SerializeObject(responseApi);            return HttpHelper.StringNoAes(content);}

启用访问地: https://localhost:44322/service/userinfo/apics

返回结果:

{
“data”: {
“merid”: “123456”,
“name”: “123”,
“fields”: {
“cardStatus”: “0”
}
},
“success”: true,
“msg”: “成功”
}

C# WebApi相关推荐

  1. 开源组件websocket-sharp中基于webapi的httpserver使用体验

    一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...

  2. ASP.NET WebAPI 11 参数验证

    在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参 ...

  3. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...

    通过前几个教程的学习,对webapi的编写基本上就可以入门了,可以做项目了,今天我们再给接口加个参数签名认证,之前的接口相当于赤果果的暴露在了网络上,只要知道接口地址.接口调用方式和传参就可以畅所欲为 ...

  4. ASP.NET WebAPi之断点续传下载(下)

    前言 上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载以及上传内容都已经全部完结,一直嚷嚷着把S ...

  5. nodejs获取ASP.Net WebAPI(IIS Windows验证)

    处理了很多天,终于使用Nodejs可以发出请求至WebAPI,能够正常处理数据了 首先加入npm包 npm install httpntlm 在app.js中加入代码 var httpntlm = r ...

  6. asp.net webapi 序列化为xml 时实体属性增加![CDATA[]]防止特殊字符

    有时webapi在序列化xml时,可能需要给某些带有html或特殊字符(如 < > & /)的字段加上<![CDATA[]]> 已防止影响xml正常数据,如果使用.as ...

  7. 通过httpmodule获取webapi返回的信息

    我写了一个webapi,想在module中获取请求的信息和返回的信息,写进log里,以方便以后查询.request信息很容易能拿到,但是返回信息得费一番周折.不多说,上代码 public class ...

  8. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)

    我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为json,xml等),但是如果Controller的自动序列化后的结果不是我们想要的该 ...

  9. asp.net core系列 38 WebAPI 返回类型与响应格式--必备

    一.返回类型 ASP.NET Core 提供以下 Web API Action方法返回类型选项,以及说明每种返回类型的最佳适用情况: (1) 固定类型 (2) IActionResult (3) Ac ...

  10. kindeditor扩展粘贴截图功能修改图片上传路径并通过webapi上传图片到图片服务器...

    2019独角兽企业重金招聘Python工程师标准>>> kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. ...

最新文章

  1. (C++)判断一个序列是non-increasing/non-decreasing还是两者都不的两个方法
  2. greta一些简单实用的字符串匹配
  3. java kotlin lateinit_kotlin - 如何检查“lateinit”变量是否已初始化?
  4. 计算机网络之-嵌入式学习
  5. 苹果cms V8模板 黑色自适应电影模板
  6. JAXB 遇到的问题
  7. eXeScope之类的程序资源修改器的使用,很牛! 【只是针对VC++和DELPHI写的程序】
  8. 基于Booth算法的64位浮点乘法器的实现
  9. 微信之父:张小龙并不孤独
  10. PicPick软件免费版与正式版区别
  11. 什么是seo?什么是pr值?
  12. 攻击JavaWeb应用[3]-SQL注入[1]
  13. android多级列表
  14. 《调色师手册:电影和视频调色专业技法(第2版)》——第2章 调色工作的环境设定 基于监视器的色彩管理...
  15. Solving environment: failed with initial frozen solve. Retrying with flexible solve的解决方法
  16. python 获取指定时区的时间——pytz
  17. 利用NB-IoT技术实现终端数据传送到阿里云服务器
  18. CleanMyMac X4.8许可证Crack Keygen
  19. 基于风险的测试终极指南:软件测试中的风险管理(一)
  20. java 监控剪切板_java利用剪切板的作弊工具

热门文章

  1. centos8中lvm丢失PV找回方法步骤
  2. 【JAR包打包为EXE】javafx/java项目(适用jdk1.8)通过Gradle插件打包为exe,包含jre,客户机无需安装JDK(含代码)
  3. 产品经理三大文档--BRD、MRD、PRD
  4. 标准件螺钉的种类概括
  5. LCD1602与51单片机
  6. java导出表功能_表格导出功能实践
  7. java取汉字拼音首字母含多音字及不常见的字
  8. 入职鹅厂一周年...
  9. ParrotSec-OS渗透测试系统
  10. python数据写入表格生成图片_python在word文档里插入图片和表格实例代码演示