设置WebAPI的路由与返回数据类型信息

1、修改API路由

在 项目中有个App_Start文件夹中的WebApiConfig.cs重新设定访问路由

 

复制代码
public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            //原来的默认路由
            //config.Routes.MapHttpRoute(
            //    name: "DefaultApi",
            //    routeTemplate: "api/{controller}/{id}",
            //    defaults: new { id = RouteParameter.Optional }
            //);
            //修改后的路由
            config.Routes.MapHttpRoute(
                name: "ActionApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
修改路由
复制代码

 

在项目中Global.asax内引用WebApiConfig中设定好的路由

复制代码
public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
引用路由
复制代码

创建控制项目中的Controllers文件夹中新建控制器

在新建好的控制器中定义方法

复制代码
/// <summary>
        /// 用户登陆
        /// </summary>
        /// <param name="postinfo"></param>
        /// <returns></returns>
        [HttpPost]
        public HttpResponseMessage UserLogin([FromBody]string postinfo)
        {
              //方法内的代码
              XXXXXXXXX
             //返回json信息 下面会有定义返回形式,默认为XML方式返回
              return ReturnHttpMessage.HttpMessage(JsonConvert.SerializeObject(user));
        }    
定义方法
复制代码

PS:必须要在方法头部定义好[HttpPost]或者[HttpGet]、[HttpPut]、[HttpDELETE]的请求方式

设定好路由后访问地址改变为:http://xxx(域名)/api/XXX(控制器)/XXXX(定义的方法)

http://localhost:8035/api/Login/UserLogin

 

2、修改设定的返回信息方式

在控制器文件(Controllers)中添加个ReturnHttpMessage类

 

复制代码
/// <summary>
        /// 返回UTF8格式的json
        /// </summary>
        /// <param name="jsoninfo">json字符串</param>
        /// <returns></returns>
        public static HttpResponseMessage HttpMessage(string jsoninfo) { 
            return new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(jsoninfo, Encoding.UTF8, "text/json")
                };
        }
View Code
复制代码

 

posted @   寒月萧风  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示