Owin搭建webapi的http服务器

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效果如下:

 

哈哈

龙腾一族至尊龙骑
原文地址:https://www.cnblogs.com/1175429393wljblog/p/13407436.html