首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net WebApi核心对象解析(二)

在谈WebApi处理架构之前,我们还是来看一下微软为WebApi提供海报,这里就不拿图了,需要看可以点击下载:下载地址     Asp.Net Web Api处理架构可以分为三层,分别是托管层、消息处理程序管道...二.WebApi托管方式解析:     在Asp.Net Web Api托管方式有三种,接下来我们来大致了解一下这三种托管方式。        ...(1).在任何Windows进程自托管。        (2).Web托管,即在IIS之上使用ASP.NET管道进行托管。... 要检索类型。...四.WebApi核心对象HttpClient:    上面介绍完服务器端接收和响应HTTP请求操作方法,接下来介绍一个客户端生成HTTP请求,用与请求和获取服务器返回消息,在新版本.NET,提供类

3.1K100
您找到你想要的搜索结果了吗?
是的
没有找到

Asp.Net Web API(二)

添加Model       一个模型就是在你应用程序展示数据一个对象。...ASP.NET Web API 可以自动序列化模型到JSON,XML或一些其它格式,然后把已序列化数据写入到HTTP响应消息正文。只要客户端可以读取序列化数据,那么它同样可以反序列这个对象。...第三个:按照类型查找产品信息,在控制器添加方法如下 1 public IEnumerable GetProductsByCategory(string category) 2 { 3...在Web API复杂类型参数是从请求消息体序列化得到,因此,我们期待客户端发送XML或JSON格式一个产品对象序列号表现形式       此实现会工作,但它还很不完整。...上述测试我们发现我们路由只是“api/{controler}”就成功返回了GetProducts方法数据,这也是ASP.NET Web API与ASP.NET MVC 之间区别。

1.9K10

Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

在HTTP内容协商主要机制是以下请求报头: Accept:响应可接收媒体类型,如“application/json”、“application/xml”,或者自定义媒体类型,如“application...Serialization——序列化 如果Web API控制器返回一个CLR类型响应,(请求处理)管线会对返回值进行序列化,并将其写入HTTP响应体。...Web API提供了XML和JSON媒体格式化器,因而你可以创建自定义格式化器,以支持其它媒体类型。...接着,管线会调用IContentNegotiatior.Negotiate,在其中传递: 要序列化对象类型 媒体格式化器集合 HTTP请求 Negotiate方法返回两个信息片段: 要使用格式化器...用于响应媒体类型 如果未找到格式化器,方法返回null,而客户端会接收到一个HTTP406(不可接收)错误。

78710

ASP.NET Web API编程——序列化与内容协商

1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据格式。在HTTP协议多媒体类型描述了消息体格式。一个多媒体类型包括两个字符串:类型和子类型。.../1.1 200 OK Content-Length: 95267 Content-Type: image/png 多媒体类型Web Api指明了如何序列化与反序列化HTTP消息体。...Web API多媒体类型格式化器可以从HTTP消息体读取CLR对象或将CLR对象写入消息体。...Web API框架提供了JSON格式化器和XML格式化器,默认支持JSON和XML序列化。可以在请求Accept首部字段指定接收类型。...序列化 如果Web API控制器操作(Action)返回CLR类型,管道序列化返回值并将其写入HTTP响应消息体。

2.4K60

WCF RESTful服务Google Protocol Buffers超媒体类型

ProtoBufferFormatter: 自定义超媒体类型是通过创建自定义MediaTypeFormatter,实现OnWritetoStream() 和 OnReadFromStream() 方法进行序列化和反序列化处理...人们经常认为媒体类型只是在服务端使用,但是它用来在客户端控制序列化和反序列化要求,下图显示了一个HTTP 请求/响应和媒体类型格式化扮演角色: ?...这个例子我们使用入门:构建简单Web API 代码和WCF Web API Preview 6。...相关文章: 软件系统开发数据交换协议 .net自带二进制序列化,XML序列化和ProtoBuf序列化压缩对比 Android上GTalk以及Push机制XMPP数据选择使用protobuf格式而非...XML Leverage T4Scaffolding for WCF Web API using-protocol-buffers-on-net-platform-part-i using-protocol-buffers-on-net-platform-part-ii

93870

【翻译】在Visual Studio中使用Asp.Net Core MVC创建你第一个Web API应用(一)

在本教程,你将建造一个简单web api去管理“to-do”项目,在整个过程不需要构建UI。...为了保持简单范例,这个应用不使用数据库,我们仅需要把对象保存在内存。但是我们还是应该保持创建一个数据访问层,这样能更好表示web API和数据层之间分离。...在New ASP.NET Core Web Application (.NET Core) - TodoApi对话框,选择Web Api模板,点击OK。 ?...GetAll方法返回了一个IEnumerable。MVC会自动把这个对象序列化成JSON格式并把格式化后内容写入到响应消息body。如果没有一场,这个响应返回代码为200。...GetById has two different return types: 相比之下,GetById方法返回了一个IActionResult类型,这样能返回更多不同返回类型

1.3K50

ASP.NET WebAPI 路由规则与POST数据

蛋疼路由规则约定 在上一篇文章 我们成功通过AJAX获取到了服务器数据, 而且服务器根据请求类型,格式化数据之后再传给客户端。...查阅微软说明得知: 在Web APIcontroller当中 只要方法名以“Get”开头 就会匹配所有的Get请求 同理以Post开头方法 将匹配所有的Post请求 (目前我个人认为这是一个非常蛋疼约定...//do what you want return item; } 这个方法接收一个Product实体 这个实体是POST来数据自动序列化得来 这个工作是由WEB...API完成 在客户端POST数据js代码如下: function addProduct() { var da = { "Id": "1",...); 前端传递JSON对象,在ACTION中被序列化为实体类型

76020

框架设计原则和规范(四)

设计模式 一、 使用规范 1. 数组 1) 要在公共API优先使用集合,避免使用数组。 2) 不要使用只读(readonly)数组字段。...集合 要求你所需要最弱类型,并返回你能提供最强类型 1) 不要在公共API中使用弱类型集合 2) 不要在公共API中使用ArrayList或List 设计用于内部实现而非API接口 //坏设计...序列化 1) 要在设计新类型时考虑到序列化 2) 选择要支持序列化技术 A.考虑让类型支持数据协定序列化——如果需要在Web服务中使用该类型,或者需要在Web服务对该服务进行持久化 参见: 对数据协定序列化支持...3) 对数据协定序列化支持 参见: 考虑让类型支持数据协定序列化——如果需要在Web服务中使用该类型,或者需要在Web服务对该服务进行持久化 [DataContract] class Person...考虑将类型成员定义为公有的——如果类型会被用于不完全可信环境 完全可信(full trust)环境,会对非公有和公有的都进行序列化和反序列化

1.4K40

【swagger】C# swagger 使用及避坑

开发 web api 时候,写文档是个痛苦事情,而没有文档别人就不知道怎么调用,所以又不得不写。 swagger 可以自动生成接口文档,并测试接口,极大解放了程序员生产力。..."); }); 5 路由相同,查询参数不同方法 在实际 ASP.NET Web API ,是可以存在 路由相同,HTTP 方法相同,查询参数不同 方法,但不好意思,swagger...6 忽略 Model 某些字段 如下图,新建用户时,后台需要一个 User 类作为参数。点击右侧 Model,可以显示 User 类属性及注释。 ?...当然这种做法也是有缺点,因为 web api返回数据时,调用默认序列化方法也是 Newtonsoft.Json 序列化。...8 出错时 HTTP 状态码 我们在方法返回一个 400 [Route("api/users")] public HttpResponseMessage Post([FromBody]User user

6.1K20

【翻译】ASP.NET Web API入门

简介 ASP.NET Web API是一个可以简化创建HTTP服务框架 它支持包括浏览器和移动设备在内各种客户端 ASP.NET Web API是在.NET Framework上创建RESTful应用程序理想平台....NET Framework上创建web API类库 在这篇文章, 你将看到如何使用ASP.NET Web API创建一个web api, 并且让这个api返回一个产品列表数据 新建项目 如下图所示...: 创建模型 模型是一个用来展现数据对象 ASP.NET WEB API可以自动序列化模型对象 为JSON、XML、或者其他数据格式 然后把序列化数据写入HTTPResponse消息内 客户端可以读取这些序列化数据...WEB API控制器并不返回View,而是直接返回数据。...WEB API非常智能 可以通过客户端请求来确定传输什么类型数据 我们可以通过如下代码来获取JSON类型数据 $(document).ready(function () {

1.7K30

实战 ASP.NET Web API

Web API 开发类似于 ASP.NET MVC 控制器开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象方式而言,Web API 封装了数据序列化、反序列化,接口、实现都更加简单...在不做任何配置情况下,如果 Http 请求,HttpHeader Accept 被指定为 accept: application/xml,则 Web API 会自动把数据使用 xml 进行序列化...Json 序列化支持对匿名类型进行进行序列化,这大大方便了开发人员,例如,我们可以随意组装数据并直接返回1: [HttpGet] 2: public IEnumerable AllGet...API 提供了 HttpResponseMessage 类型可作为返回值,使得开发人员可以对 HttpResponse 做一些更详细设置。...如果参数列表只有一个参数,而且它类型是一个复杂类型,那么 Web API 会直接把 Body 尝试反序列化为该类对象。

1.4K50

asp.net web api 2.2 基础框架(带例子)

简介 这个是我自己编写asp.net web api 2.2基础框架,使用了Entity Framework 6.2(beta)作为ORM。...需要使用Fluent Api来配置数据库映射属性等,按约定使用Model名+Configuration作为fluent api名字,并需要继承EntityBaseConfiguration...该Modelfluent api配置类需要继承是TreeEntityBaseConfiguration这个类,代码如下: using System.Collections.Generic; using...(我认为这样最好) g.内置把汉字转为拼音首字母工具,PinyinTools h.所有上传文件Model需要实现IFileEntity接口,参考代码例子。...i.所有后台翻页返回结果应该是使用PaginatedItemsViewModel。 里面有很多例子,请参考。 注意:项目启动后显示错误页,因为我把Home页去掉了。

4.9K90

在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

二、定义Web API 在正式定义Web API之前,我们需要在项目Common定义代表联系人数据类型Contact。...Web API体现在如下所示ContactsController类型。...ASP.NET Web API批量寄宿源自它对HttpController类型智能解析,它会从“提供程序集列表解析出所有HttpController类型(所有实现了IHttpController...除此之外,我们还需要添加针对程序集“System.Net.Formatting.Http.dll”引用,因为序列化请求和反序列化响应相关类型定义在此程序集中。...该HttpResponseMessage对象Content属性返回一个表示响应主体内容HttpContent对象,我们调用其ReadAsAsync方法读取响应主体内容并将其反序列化成一个Contact

4.5K110

WebAPI返回JSON

web apiapi接口时默认返回是把你对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法:  方法一:(改配置法)  找到Global.asax文件,在Application_Start...System.Net.Http.Headers.MediaTypeHeaderValue("text/html")); 这样返回结果就都是json类型了,但有个不好地方,如果返回结果是String...类型,如123,返回json就会变成"123"; 解决方法是自定义返回类型(返回类型为HttpResponseMessage) public HttpResponseMessage PostUserName...,又要处理返回值为String类型json,甚是麻烦,不如就不用web  api自动序列化对象,自己序列化后再返回 public HttpResponseMessage PostUser(User...String类型,如123,返回json就会变成"123",解决方法同方法一。

3.5K20

Self Host模式下ASP. NET Web API是如何进行请求监听与处理

对于最终需要返回响应消息,则按照从上到下顺序被这个管道进行处理并最终返回给客户端。 对于这个由Channel组成消息处理管道来说,有两种类型Channel是必不可少。...是一个定义在程序集“System.Web.Http.SelfHost.dll”内部类型),它最终会创建一个MessageEncoder对象完成针对消息编码/解码工作。...经过HttpMessageEncoder解码后Message对象会转成一个HttpRequestMessage对象并传入ASP.NET Web API消息处理管道进行处理,由此管道返回HttpResponseMessage...这个具体消息实际上是一个HttpMessage对象,HttpMessage继承自抽象类Message,它是一个定义在程序集“System.Web.Http.SelfHost.dll”内部类型。...由于我们采用MediaTypeFormatter类型为JsonMediaTypeFormatter,指定Employee对象会以JSON格式进行序列化

1.7K60
领券