C# API接口
一、 利用ashx搭建
参考文章:https://blog.csdn.net/ZYD45/article/details/79939475
- 创建ASP.NET Web应用程序
- 添加 .ashx 文件
- 编写代码
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data;namespaceWebApplication1.API{/// <summary>/// MyHandler 的摘要说明/// </summary>publicclassMyHandler:IHttpHandler{publicvoidProcessRequest(HttpContext context){HandlerResultModel mHandlerResult =null;string sActionType = context.Request.Params.Get("ActionType")==null?"": context.Request["ActionType"].Trim();string callback = HttpContext.Current.Request["jsoncallback"];try{//接口1if(sActionType.Equals("Query")){string sDate = context.Request.Params.Get("Date")==null?"": context.Request["Date"].Trim();DataSet ds =Query(sDate); mHandlerResult =newHandlerResultModel("T", ds,"success");}//接口2elseif(sActionType.Equals("Test")){ mHandlerResult =newHandlerResultModel("T","","success");}}catch(Exception ex){ mHandlerResult =newHandlerResultModel("F","", ex.Message);}//转换为Json格式 context.Response.ContentType ="application/json"; context.Response.ContentEncoding = System.Text.Encoding.UTF8;string sJsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(mHandlerResult); context.Response.Write(callback +"("+ sJsonResult +")"); context.Response.End();}/// <summary>/// 数据库查询/// </summary>/// <param name="Date">日期</param>/// <returns></returns>publicDataSetQuery(string Date){string sConnection="Server={sqlIP};Integrated Security=no;User Id={sqlID};PWD={sqlPassword};initial catalog = {sqlTablename}; Connect Timeout = 60000;";string sql =string.Format($@"SELECT MachineName,StationNo,RunningTime,PowerOnTime,PowerOffTime,MoNoCount,OEE FROM EquFarming WHERE CreateDate>='{Date}'");//连接数据库查询数据并获取记录DataSet ds = SqlHelper.ExecuteDataset(sConnection, CommandType.Text, sql);if(ds.Tables.Count <1){thrownewException("获取数据库出错");}return ds;}}
HandlerResultModel类(用于规范 response 格式)namespaceWebApplication1{[Serializable]publicclassHandlerResultModel{privatestring sFlag;privateobject oResult;privatestring sErrorMessage;publicHandlerResultModel(){this.sFlag ="";this.oResult ="";this.sErrorMessage ="";}publicHandlerResultModel(string Flag,object Result,string ErrorMessage){this.sFlag = Flag;this.oResult = Result;this.sErrorMessage = ErrorMessage;}publicstring Flag {get{return sFlag;}set{ sFlag =value;}}publicobject Result {get{return oResult;}set{ oResult =value;}}publicstring ErrorMessage {get{return sErrorMessage;}set{ sErrorMessage =value;}}}}
- 启动项目,将地址改为接口地址,就可以得到接口传输的数据了。 (JSON的显示使用了JsonHandler插件,可以按照在chrome浏览器)
二、创建ASP.NET CORE Web API
参考文章:https://www.yisu.com/zixun/508327.html
- 创建 ASP.NET CORE Web API 项目,取消配置HTTPS选项
- 添加 API控制器
- 编写代码
usingMicrosoft.AspNetCore.Http;usingMicrosoft.AspNetCore.Mvc;namespaceWebAPI.Controllers{[Route("api/[controller]/[action]")]//一级路由[ApiController]publicclassValuesController:ControllerBase{[HttpGet("{name}/{id}/{date}")]//通过get请求的子路由,如果这里不写()里面的话,则URL采用api/values/SignIn?name=value的方式传值//如果写在()里面,则可以通过api/values/signin/values的方式传值publicstringSignIn(string name,int id,string date){return$"测试接口1:输入参数为{name},{id},{date}";}[HttpGet]publicstringSignOut(string name){return"测试接口2:"+ name;}}}
- 启动项目
本文转载自: https://blog.csdn.net/weixin_43430200/article/details/126785026
版权归原作者 迷途小码兄 所有, 如有侵权,请联系我们删除。
版权归原作者 迷途小码兄 所有, 如有侵权,请联系我们删除。