ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 这是 MSDN 给出的官方定义!...关于 RESTful Api 的更多信息, 可以参考 阮一峰老师的文章 理解RESTful架构 RESTful API 设计指南 创建WEB API ?...在 VS 中创建一个 空项目,并为其添加 Web API。 添加模型 模型是表示应用程序中的数据的对象。...ASP.NET Web API 可以自动序列化到 JSON、 XML 或某种其他格式,然后写入 HTTP 响应消息的正文序列化的数据。 只要客户端可以读取的序列化格式,它可以反序列化对象。
很多的api,例如GitHub’s API 都有流量控制的做法。...使用速率限制,以防止在很短的时间量客户端向你的api发出太多的请求.例如,我们可以限制匿名API客户端每小时最多60个请求,而我们可以让更多的经过认证的客户端发出更多的请求。...那么asp.net webapi如何实现这样的功能呢?...Throttling ASP.NET Web API calls Introducing ASP.NET Web API Throttling handler Throttling Suite for...Web API
ASP.NET MVC 4 Beta 新功能特性: (1) ASP.NET Web API (2) 添加移动项目模板 (3) 对移动 app 特性的功能支持,JQuery Moblie,View...在 ASP.NET Web API 中共有以下几个特性: Modern HTTP programming model: 最强大的功能之一, 它可以在 HttpWebRequest 中公开强行别的数据...更多资源:请参考http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253813 asp.net mvc web api 教程 下载地址:http...Getting Started with ASP.NET Web API http://www.asp.net/web-api Introducing ASP.NET MVC 4 Beta with....html Self-Host a Web API (C#) http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api
在ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC的特性及路由等功能。...在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API的文件夹,填加后,选中API文件夹, ?...选择新建项,选择填加Web API控制器,要注意控制器在命名时,是以Controller结尾的,这个不能改,前面的随意,比如,此处以NoteController.cs为例 ?..._noteTypeRepository = noteTypeRepository; } // GET: api/note [HttpGet].../note 即可获取note的信息了 当然 也可以访问地址http://127.0.0.1:port/api/note?
服务接口 接口1: //Post:http://127.0.0.1/HY_WebApi/api/V2/Key/FunctionTest1 [HttpPost] public HttpResponseMessage...FunctionTest1(Model1 model) { ...... } 接口2: //Post:http://127.0.0.1/HY_WebApi/api/V2/Key...set; } } public class Model2 { public string Field21{get;set;} public string Field22{get;set;} } 客户端调用...HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, @"http://192.168.20.104/HY_WebApi/api...调用接口2传参的方式有两种 第一种方法:采用FormUrlEncodedContent将请求输入写入消息体中 HttpContent content = new FormUrlEncodedContent
ASP.NET MVC, Web API and Web Pages Razor 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。...ASP.NET MVC, Web API and Web Pages (Razor) ASP.NET 是一个免费的Web框架,用于构建大型的网站和应用程序。...ASP.NET Web 套件包括 ASP.NET MVC 4.0,5.0、Web API 1.0,2.0 和 Web Pages 2,0,3.0 。...其很多优秀的概念设计后来也延续到了 ASP.NET Core 当中。 从学习和生产两个角度来说,如何深入的了解框架版本的原理和实现都不为过。...英文介绍 ASP.NET MVC, Web API and Web Pages (Razor) ASP.NET is a free web framework for building great web
开发人员倾向在服务中提供所有支持的方法的静态描述,从正式约定(如 SOAP 服务中的 Web 服务描述语言 (WSDL))到非超媒体 Web API 中的简单文档都是如此。...现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...格式化程序实现形式知道如何处理特定媒体类型,以及如何将它序列化或反序列化为具体的 .NET 类型。过去在 ASP.NET MVC 中对新媒体类型的支持十分有限。...幸运的是,这种不一致性在 ASP.NET Web API 中已通过引入格式化程序得到解决。...您在 RestBugs 中可以找到用于 Razor 的 MediaTypeFormatter 的具体实现,该示例应用程序由 Howard Dierking 创建,演示如何使用 ASP.NET Web API
当Web API接收到一个请求的时候,它将这个请求路由到一个Action。 注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...category=category 然而,以下URI就不匹配,因为它缺少“api”字段 /product/1 注意:在路由中使用“api”的原因是为了避免与ASP.NET MVC...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。 你也可以通过使用ActionName注解属性来覆盖动作名。...Parameter Bindings 参数绑定是指Web API如何创建参数值。...但是在这种情况下,Web API框架不能提前知道是否这个参数被绑定到一个特殊的URI。为了查明情况,这个框架需要调用这个绑定。选择算法的目的是在调用绑定之前根据静态描述来选择一个Action。
什么是Web API HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。...Web API 与MVC 的区别 1.使用区别 MVC主要用于Web站点开发,它在后端实现了一套完整的MVC开发框架,能提供方便的页面开发,提供给了后端Html构成,用户可以方便的开发出带页面的站点... Web API主要用于做开放API接口,更抽象,更不注重VIew生成 2.自身实现区别 两种框架主要使在Asp.Net的基础上进行改造,主要是对...而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为...何况它们两者虽然都有Controller和Action,但是请求的实现和响应的回复机制也是不同的,比如Web API处理消息的两个核心类是HttpRequestMessage和HttpResponseMessage
创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...注意,如果你使用了ASP.NET MVC 已熟悉控制器,Web API控制器类似于MVC控制器,但是继承ApiController,而不是Controller类 ?...ASP.NET Web API使它容易操作HTTP响应消息。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Install-Package...(在上下文“Default”中的“C:\Windows \Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\821cf8a9...Refer: http://www.asp.net/web-api/overview/creating-web-apis/creating-api-help-pages http://blogs.msdn.com.../b/webdev/archive/2013/04/04/debugging-asp-net-web-api-with-route-debugger.aspx http://www.asp.net/web-api.../overview/testing-and-debugging/tracing-in-aspnet-web-api
Web API 的开发类似于 ASP.NET MVC 中控制器的开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单...跟 ASP.NET MVC 的 Json 序列化不同的是,Web API 使用了 Newtonsoft.Json 框架来进行序列化。...Action 匹配 Web API 框架默认是基于 Restful 架构模式的,与 ASP.NET MVC 有区别的是,它会根据 Http 请求的 HttpMethod(Get、Post、Put、Delete...username=hqf@qq.com&password=dsd 关于 POST 参数绑定 Web API 相对于 ASP.NET MVC,使用了新的参数绑定类。...要注意的是,Action 参数列表中只能有一个参数可以从 Http Post Body 中反序列化出来。
Asp.Net Web API不可以需要IIS。可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 ? ...记得扩展引用System.Web.Http using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Http...API 在Program类中添加如下引用 using System.Http; using System.Web.Http.SelfHost; 然后再添加如下代码 using System; using...System.Web.Http; using System.Web.Http.SelfHost; namespace WebAPI.Server { class Program {...AllowAutoRedirect = false, UseProxy = false }; HttpClient client = new HttpClient(handler); WebRequestHandler从HttpMessageHandler
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...API如何处理异常。...注意:ASP.NET Web API中的异常过滤器与ASP.NET MVC中是及其相似的。然后,它们被声明在不用的命名空间下,且功能也是独立的。...特别强调以下,ASP.NET MVC中使用的HandlerErrorFilterAttribute不会处理Web API控制器抛出的异常。 ...这个集合中的所有异常过滤器会应用于任何Web API控制器Action public class WebApiApplication : System.Web.HttpApplication {
[原文发表地址] ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions...它确实是快乐的一天, (字面上这一刻) 正如我在拉斯维加斯的一次会议上,刚刚点击发布按钮来发布这篇博文,以此来宣布 ASP.NET MVC 4,ASP.NET Web API,ASP.NET Web Pages...今天我们继续前进,现在 ASP.NET MVC,Web API, Web Pages将会从社区采纳贡献的程序。来自OuterCurve 的NuGet 也是开源了,现在ASP. NET的大部分都是开源。...请记住ASP.NET MVC、 Razor、 和 Web API完全支持Microsoft 产品,并仍将由同样的开发人员来构建它们,这一点真的很重要。...Web 团队深入到了Mono。ASP.NET MVC 可以在Mono 上运行, 我们很喜欢这一点,我们期待着从Mono社区获取代码贡献。
几个月之前WCF和ASP.NET 团队合并,把WCF Web API的内容并入了ASP.NET Web API,目前WCF Web API的所有功能并没有完成移植,将在ASP.NET Web API正式发布的时候完成移植...,非常期待正式发布的ASP.NET Web API,更期望ASP.NET MVC 4会和ASP.NET MVC 3一样可以很好的运行在Mono上,这样Mono平台就完美了,可以完全的支持RESTful...同时提供了一份WCF Web Api到ASP.NET Web API的迁移指南How to Migrate from WCF Web API to ASP.NET Web API,其中列出了 WCF Web...Api 到 ASP.NET Web Api 的映射表: WCF Web API ASP.NET Web API Service Web API controller Operation Action...ASP.NET Web API还有一个特性就是可以类似于WCF自宿主方式部署,当然也可以在IIS上运行。 下面来看看如何使用 ASP.NET Web Api (使用的是 VS2010版) ?
这篇文章主要是介绍ASP.NET Web API的处理架构:当一个HTTP请求到达直到产生一个请求的过程。...ASP.NET Web API 的处理架构图如下,主要有三层组成:宿主(hosting),消息处理管道(message handler pipeline)和控制器处理(controller handling...宿主(Hosting) 底层负责Web API的宿主,Web API之间的接口和HTTP 处理引擎。一句话,这一层负责创建HttpRequestMessage实例。然后把他们推入到上层的消息处理管道。...目前在ASP.NET Web API里头已经内建的宿主选项有2个:self-hosting 和 web hosting, web hosting也就是宿主在IIS的ASP.net 的处理管道里,Self-hosting...这个处理器负责获取和调用 一个 控制器(Controler) 处理请求。
Cross-Origin Resource Sharing (CORS) 是W3C草案拟定的浏览器与服务端如何进行跨域请求的方式,其原理是用自定义HTTP头来让浏览器和SERVER决定request、response...ASP.NET Web API 支持 CORS 支持的代码参见 http://code.msdn.microsoft.com/Implementing-CORS-support-418970ee,也可以通过...Nuget 获取WebAPIContrib PM> Install-Package WebAPIContrib 然后给你的Web API的Action 打上标签[EnableCors],例如下面的代码...services across domains Cross-Origin Resource Sharing (CORS) and WCF 在asp.net web api中动态修改action的名字...ASP.NET Web API: CORS支持和基于属性的路由改进 Using Cross Origin Resource Sharing (CORS) in ASP.NET Web API
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);这样配置使Odata操作符可用(Web Api2的旧版本不必如此设置)。...true)] ,[ODataFormatting],[ODataRouting]这三个特性,由于[ApiExplorerSettings(IgnoreApi = true)] 的影响,在System.Web.Http.Description.ApiDescription
,永远也无法返回调用结果,发生了死锁!!!...4 对第二种方法的错误点分析: 看Web api dll源码中的设置: ?...这段代码的核心方法: ? 上面的方法,循环读取请求数据,当设置的缓冲区大小小于客户端发送到服务器的数据量时,要执行多次循环读取数据,每次循环读取数据都是调用两个异步方法: ? ?...然而,ReadAsMultipartAsync方法的返回值是Task(T为 streamProvider),所以当调用Task.Wait()方法等待的时候,ReadAsMultipartAsync...第一种方法使用await,实现同步机制,而没有调用Task.Wait()方法,这样就避免了A、B两块代码块互相等待返回结果而导致死锁的可能。
领取专属 10元无门槛券
手把手带您无忧上云