webapi------宿主程序

匿名 (未验证) 提交于 2019-12-02 23:48:02

业务场景:

公司的容器程序需要给前端暴露接口但是代码里面又不想写webapi项目工程就用到了宿主可以达到webapi的效果

1、owin实现

2、其他实现

1、新建一个控制台程序

2、新建一个Controller文件并继承ApiController

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http;  namespace ConsoleApplication1 {     public class BlahController : ApiController     {         [HttpGet]         public string Date()         {             return DateTime.Today.ToString("yyyy/MM/dd");         }     } }

3、实现调用

3.1实现调用一

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web.Http; using System.Web.Http.SelfHost;  namespace ConsoleApplication1 {     class Program     {                static void Main(string[] args)         {                       #region http://localhost:9001/Blah/Date             //指定URL             var config = new HttpSelfHostConfiguration("http://localhost:9001");             //设定路由             config.Routes.MapHttpRoute("API", "{controller}/{action}/{id}", new { id = RouteParameter.Optional });             using (var httpServer = new HttpSelfHostServer(config))             {                 //OpenAsync()属非同步呼叫,加上Wait()则等待开启完成才往下执行                 httpServer.OpenAsync().Wait();                 Console.WriteLine("Web API host started...");                 string line = null;                 do                 {                     line = Console.ReadLine();                 }                 while (line != "exit");                 //结束链接                 httpServer.CloseAsync().Wait();             }             #endregion          }     } }

3.2实现调用二

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web.Http; using System.Web.Http.SelfHost;  namespace ConsoleApplication1 {     class Program     {                static void Main(string[] args)         {             #region http://localhost:9001/api/Blah/Date             HttpSelfHostConfiguration config = new HttpSelfHostConfiguration("http://localhost:9001");             config.Routes.MapHttpRoute(                 name: "API",                 routeTemplate: "api/{controller}/{id}",                 defaults: new { id = RouteParameter.Optional });             using (HttpSelfHostServer server = new HttpSelfHostServer(config))             {                 server.OpenAsync().Wait();                 Console.WriteLine("Web API is started now");                 Console.ReadLine();             }             #endregion         }     } }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!