博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net Web API 2第十课——使用OWIN自承载Web API
阅读量:4342 次
发布时间:2019-06-07

本文共 2875 字,大约阅读时间需要 9 分钟。

原文:

前言

阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 

本教程主要来展示在控制台应用程序中如何通过OWIN来承载Web API。

 (OWIN)在Web服务器和Web应用程序之间建立一个抽象层。OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外。

本文仍将使用VS2013。 本文的示例代码下载地址

使用OWIN自承载

 1.建立一个控制台应用程序,然后通过Nuget来安装Microsoft.AspNet.WebApi.OwinSelfHost。

2.配置Web API为自承载

添加一个名为Startup的类

using Owin;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web.Http;namespace OWinSelfHost{    public class Startup    {        public void Configuration(IAppBuilder appBuilder)         {             // Configure Web API for self-host.             HttpConfiguration config = new HttpConfiguration();             config.Routes.MapHttpRoute(                 name: "DefaultApi",                 routeTemplate: "api/{controller}/{id}",                 defaults: new { id = RouteParameter.Optional }             );             appBuilder.UseWebApi(config);         }     } }

可以发现主要是为了配置路由。

 3.添加一个Web API控制器

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web.Http;namespace OWinSelfHost{    class ValuesController:ApiController    {        // GET api/values         public IEnumerable
Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { } }}

控制器也没什么特别的地方,很简单。

4.启动OWIN,并且使用HttpClient发出请求,使用以下代码替换调Program.cs中文件的内容

using Microsoft.Owin.Hosting;using System;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Text;using System.Threading.Tasks;namespace OWinSelfHost{    class Program    {        static void Main(string[] args)        {            string baseAddress = "http://localhost:9000/";            // Start OWIN host             using (WebApp.Start
(url: baseAddress)) { // Create HttpCient and make a request to api/values HttpClient client = new HttpClient(); var response = client.GetAsync(baseAddress + "api/values").Result; Console.WriteLine(response); Console.WriteLine(response.Content.ReadAsStringAsync().Result); } Console.ReadLine(); } }}

定义一个基地址,主要是通过WebApp.Start来开启OWIN,来承载Web API,然后就可以通过HttpClient进行调用发出请求。

最终运行,查看效果

返回的结果是正确的。

总结

 这感觉上去还是比较简单的,相对于上一节中更为简单吧。

 本文已更新至Web API学习系列导航 

 本文的参考链接

 本文的示例代码下载地址

 

 

 

posted on
2014-03-18 23:25 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/3609038.html

你可能感兴趣的文章
阿里百川SDK初始化失败 错误码是203
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>
关于jquery中prev()和next()的用法
查看>>
一、 kettle开发、上线常见问题以及防错规范步骤
查看>>
eclipse没有server选项
查看>>
CRC码计算及校验原理的最通俗诠释
查看>>
使用Gitbook来编写你的Api文档
查看>>
jquery扩展 $.fn
查看>>
Markdown指南
查看>>
influxDB的安装和简单使用
查看>>
JPA框架学习
查看>>
JPA、JTA、XA相关索引
查看>>
机器分配
查看>>
php opcode缓存
查看>>
springcloud之Feign、ribbon设置超时时间和重试机制的总结
查看>>
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
查看>>
UIDynamic(物理仿真)
查看>>
Windows下安装Redis
查看>>
winform非常实用的程序退出方法!!!!!(转自博客园)
查看>>