当前位置:首页 > Windows程序 > 正文

OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口

2024-03-31 Windows程序

 OWIN 的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 处事器和 .NET Web 应用之间界说了一套标准的接口, 其目的是为了实现处事器与应用之间的解耦,使得便携式 .NET Web 应用以及跨平台的愿望成为现实, 标准的 OWIN 应用可以在任何 OWIN 兼容的处事器上运行, 不再依赖于Windows和IIS 。

 

OWIN的使用

创建项目  

技术分享图片

向项目中添加Microsoft.AspNet.WebApi.Owin 和 Microsoft.AspNet.WebApi.Owin Self Host包(Self Host 用于开启OWIN Host,设置监听接受Http请求)

    

技术分享图片

    

技术分享图片

添加Startup类

Startup是OWIN约定的,用于对OWIN做相关配置的,代码如下:

using Owin; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace OwinTest { public class Startup { public void Configuration(IAppBuilder appBuilder) { // 创建 Web API 的配置 var config = new HttpConfiguration(); // 启用符号路由 config.MapHttpAttributeRoutes(); // 默认的 Web API 路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); // 将路由配置附加到 appBuilder appBuilder.UseWebApi(config); } } }

新建Controllers文件夹,添加queryControllers类

    凭据 Web API 项目的约定,在项目中添加一个名称为 Controllers 的文件夹,然后新建 一个queryController类,设置其基类为 System.Web.Http.ApiController ,作为示例,其内容与 Visual Studio 自带的 Web API Controller 模板一致,包罗4种请求方法(GET/POST/PUT/DELETE),用于演示,重写GET要领(直接返回请求参数)和POST要领(接受实体类参数直接返回),queryController代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace OwinTest.Controllers { public class queryController : ApiController { // GET api public string Get(string id) { return id; } // POST api public DeParams Post(DeParams dp) { return dp; } // PUT api public void Put(int id, string value) { } // DELETE api public void Delete(int id) { } } }

在Program.cs文件中的 Main 要领中添加OWIN启动要领,代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Microsoft.Owin.Hosting; namespace OwinTest { class Program { static void Main(string[] args) { string baseAddress = "http://localhost:9000/"; // Start OWIN host using (WebApp.Start<Startup>(url: baseAddress)) { HttpClient client = new HttpClient(); Console.WriteLine(baseAddress); Console.ReadLine(); } } } }

 

 

演示

启动处事端措施

技术分享图片

发送GET请求

DHC是一个测试HTTP/REST API的在线工具,https://www.sprintapi.com/dhcs.html,本地测试需在Google商店下载扩展插件。

技术分享图片

同样也可通过浏览器来直接发送GET请求,如下:

此中localhost:9000/api/query/ok 对应OWIN路由配置中的 routeTemplate: "api/{controller}/{id}"。

技术分享图片

发送POST请求

指定请求内容格局为json

技术分享图片

添加自界说请求

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/33362.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494585访问次数
  • 建站天数
  • 友情链接