首页 > 其他 > 详细

NancyFX 第八章 内容协商

时间:2017-02-12 12:07:55      阅读:287      评论:0      收藏:0      [点我收藏+]

   在Web框架的范畴内,一切都是基于REST的-- 从返回包含CSS、JavaScript的网页的路由路径,到那些返回JSON数据的URL。

技术分享

   无论你怎么看它,两者都是必须的。我们使用一组URL来呈现URL,使用第二组URL给UI提供动态数据。有时我们还需要第三组URL给移动端提供数据。

   其中的重复可能需要大量的工作。并且在我看来,这也是不优雅的。为了解决这个问题,很多框架(包含Nancy)提供了一种叫做内容协商(content negotiatio)的机制。

   协商什么内容

   当你使用浏览器发出请求时(或者代码访问服务器),你就已经提供了很多信息来描述这个请求。

   这些信息被称为请求头(request headers):

技术分享

   请看上图中请求头的Accept 行,这一行是用来描述浏览器或调用程序接收的内容类型,在我们的例子中是:

   Accept: text/html,application/xhtml+xml,application/xml,image/webp,*/*

   其中说,按优先顺序排列,我希望能接收到 html、 xml 或 webp 图像,如果不能提供序列中的任何类型,那随便什么都可以了。

   Nancy在收到客户端请求后会留意请求头中Accept部分。基于查找到的资源,也是可以改变输出的请求头。

   如果请求头中的Accept 如下:

   Accept: application/json

   Nancy会检查返回的数据是否是JSON格式的数据,如果不是,就会抛出异常,报出请求失败。假如我们不想请求失败,可以添加 */* 到后面,正如之前的示例,Nancy就能返回默认的内容。

   

 

NancyFX 第八章 内容协商

原文:http://www.cnblogs.com/lilunjia/p/6390568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!