Owin搭建webapi的http服务器
1、新建netformework 控制台项目ConsoleTestOWIN,使用NuGet,搜索 owinselfhost ,添加Microsoft.AspNet.WebApi.OwinSelfHost
2、选择项目ConsoleTestOWIN,右键添加OWIN Startup 类
代码如下:
using System.Web.Http; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(ConsoleTestOWIN.Startup))] namespace ConsoleTestOWIN { public class Startup { public void Configuration(IAppBuilder app) { // 有关如何配置应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkID=316888 HttpConfiguration configuration = new HttpConfiguration(); configuration.Routes.MapHttpRoute( name: "default", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); app.UseWebApi(configuration); //注意: //1、defaults: new { id = RouteParameter.Optional } // 设置http://ip:port/api/{controller}/{id}中的id是否需要 //2、如果 路由模板是 routeTemplate: "api/{controller}/{action}/{id}",, //访问:http://ip:port/api/{controller}/{action}/{id} //如果 路由模板是 routeTemplate: "api/{controller}/{id}",, //访问:http://ip:port/api/{controller}/{id} //以上两种 路由模板设置是有区别的 } } }
3、选择项目ConsoleTestOWIN,右键添加TestController 类
代码如下:
using System.Collections.Generic; using System.Web.Http; namespace ConsoleTestOWIN { public class TestController: ApiController { [HttpGet] public IEnumerable<string> Get() { List<string> list = new List<string> { "111", "222", "333" }; return list; } [HttpGet] public string Get(int id) { return $"收到数据{id}"; } public string Post([FromBody] string data) { return data; } public string Delete(int id) { return $"delete数据{id}"; ; } } }
4、项目ConsoleTestOWIN的Program.cs中的代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Owin.Hosting; using Owin; namespace ConsoleTestOWIN { class Program { static void Main(string[] args) { Console.WriteLine("启动服务。。。"); WebApp.Start<Startup>("http://localhost:8090/");//注意之后的斜杠不要忘记了 //string baseAddress = "http://127.0.0.1:8090/"; //WebApp.Start<Startup>(url: baseAddress); Console.WriteLine("服务启动成功。。。"); Console.ReadLine(); } } }
5、运行项目ConsoleTestOWIN,地址栏中输入http://localhost:8090/api/test/get/和http://localhost:8090/api/test/get/2效果如下:
哈哈