在asp.net web form项目中添加webapi接口

 我有一个支付宝服务网关是ASP.NET WEB FORM项目,但是最近这个网关需要对外提供几个接口,想了下,使用web api比较合适,实现很简单,GO

  首先通过nuget包管理器给项目添加Microsoft.AspNet.WebApi模块。

 1,添加一个文件夹名字叫App_Start,貌似需要固定名称

 

 2.在App_Start文件夹下添加WebApiConfig类,WebApiConfig类代码如下:

  

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;//命名空间来至Microsoft.AspNet.WebApi程序集。

namespace AlipayGateway.App_Start
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}
复制代码

  3.在Global.asax文件的Application_Start函数中添加代码注册API路由规则

复制代码
namespace AlipayGateway
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);
        }
    }
}
复制代码

 4.添加一个控制器

 

控制器代码如下:

复制代码
using AliPayService;
using Newtonsoft.Json;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;

namespace AlipayGateway.Controllers
{
    [RoutePrefix("api/sapi")]
    public class SapiController : ApiController
    {
        /// <summary>
        /// 发送模板消息
        /// </summary>
        /// <returns></returns>

        [Route("sendtempmsg")]
        public HttpResponseMessage SendMsg()
        {
            string pay_type = HttpContext.Current.Request.Form["pay_type"];
            string msg_content = HttpContext.Current.Request.Form["msg_content"];
            string msg = MessageSendBiz.SendTemplateMsg(int.Parse(pay_type), msg_content);
            return GetHttpResponseMessage(msg);
        }private HttpResponseMessage GetHttpResponseMessage(string msg)
        {
            return new HttpResponseMessage { Content = new StringContent(msg, Encoding.GetEncoding("UTF-8"), "application/json") };
        }
    }
}
复制代码

调用时向http://localhost:57841/api/sapi/sendtempmsg提交表单即可

posted @   半山上的人  阅读(6152)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示