JSON

Web API Request/Response 数据格式

字号+ 作者:H5之家 来源:H5之家 2017-11-24 08:41 我要评论( )

Web API Request/Response 数据格式Media Type 在这里,您将了解Web API如何处理不同格式的请求和响应数据。Media Type媒体类型(又名MIME类型)指定数据的类型/子

下一节 → ← 上一节

Web API Request/Response 数据格式

在这里,您将了解Web API如何处理不同格式的请求和响应数据。

Media Type

媒体类型(又名MIME类型)指定数据的类型/子类型的格式,例如type/subtype , text/html, text/xml, application/json, image/jpeg 等。

在HTTP请求,请求中指定MIME类型的方法是是在头部中使用Accept和Content-Type属性。Accept头部属性指定客户期望的响应数据的格式,Content-Type头部属性指定请求体中的数据的格式,这样接收器可以解析它转换成适当的格式。


例如,如果一个客户端希望得到JSON格式的响应数据,那么他可以按照下面的格式发送Http Get请求到Web API。

GET :60464/api/student HTTP/1.1 User-Agent: Fiddler Host: localhost:1234 Accept: application/json


以同样的方式,如果一个客户机在请求正文中包含需要发送到接收机的JSON数据,那么他可以发送以下POST HTTP请求,头部的Content-Type使用application/json,如下:

POST :60464/api/student?age=15 HTTP/1.1 User-Agent: Fiddler Host: localhost:60464 Content-Type: application/json Content-Length: 13 { id:1, name:'Steve' }

Web API将请求数据转换成CLR对象,也会序列化CLR对象成为基于Accept和Content-Type头的响应数据。Web API内置支持JSON、XML BSON,form-urlencoded数据。这意味着它会自动将请求/响应数据转换成这些格式。

参考以下简单的操作方法。

public class Student {     public int Id { get; set; }     public string Name { get; set; } } public class StudentController : ApiController {     public Student Post(Student student)     {         // save student into db         var insertedStudent = SaveStudent(student);         return insertedStudent;     } }

正如上面你可以看到的,Action方法Post()接受学生类型参数,保存学生到数据库并返回插入学生后生成的id。上面的Web API处理带JSON或XML数据的HTTP Post请求,解析到一个基于Content-Type头的Student对象,之后它将insertedStudent对象转换为基于Accept的JSON或XML数据。

下图展示了在Fiddler中的HTTP POST请求。


在上面的图中,Accept指定响应数据为XML格式并且Content-Type指定请求数据中的学生数据是json格式。下面是在执行上述请求的响应。


用同样的方式,您可以使用accept 和 content-type 头来指定不同的请求/返回数据的格式,Web API将原封不动地处理它们。

以下HTTP POST请求发送XML格式的数据并接收JSON格式的数据。


上面的HTTP POST请求会得到以下响应。


因此,Web API默认处理JSON和XML格式的数据。

在下一节我们将学习Web API如何使用Formatters格式化请求/响应数据。



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址: (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:


← 上一节 下一节 →



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

    在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

    2017-11-20 16:04

  • 情感分析 BosonNLP HTTP API 1.0 documentation

    情感分析 BosonNLP HTTP API 1.0 documentation

    2017-11-18 17:24

  • android和php通过httpget协议获取json数据

    android和php通过httpget协议获取json数据

    2017-11-16 18:27

  • 微信API For Node.js

    微信API For Node.js

    2017-11-08 17:02

网友点评
;