ASP.NET Web API 路由 (上)

时间:2021-12-19 01:01:42

1 什什么是ASP.NET Web API 路由

ASP.NET Web路由其实就是一个抽象的消息处理管道,ASP.NET Web API的路由机制不同于ASP.NET的路由机制,但是与ASP.NET的路由有着相似的一套设计。

2 ASP.NET Web API 请求和响应的相关对象

ASP.NET Web API的请求是通过HtppRequestMessage作为管道来处理请求的消息,通过HtppReponseMessage作为管道来处理响应的消息。也就是ASP.NET Web API处理用户请求和响应用户的核心的对象是HttpRequestMessage和HtppReponseMessage,而ASP.NET用于处理用户请求和响应的是HttpRequest和HttpReponse。

2.1 HttpRequestMessage 对象

在一个完整的HTTP请求/响应报文中是由起始行、报头集合、主体内容三部分构成。

在Http的起始行包含了HTTP方法、请求URI、HTTP版本,而起始行在HttpRequestMessage的属性是Method、RequestUri和Vesion。

HTTP                  HttpRequestMessage  
 HTTP方法   Method  
请求URI   RequestUri  
HTTP版本   Vesion  

在请求报文的报头集合、主体内容在HttpRequestMessage的体现分别是Headers、Content。

注:如果我们没有对Http方法进行设置,HttpRequestMessage默认是采用GET

2.2 HtppReponseMessage 对象

在ASP.NET Web API中通过HtppReponseMessage类型来表示响应消息,可以在该类型中获取HTTP响应报文的相关信息。HTTP响应报文的起始行中包含HTTP版本、响应状态码和状态文字描述相关信息,在HtppReponseMessage对应着分别是Version、StatuCode和ReasonPhrase属性。

HTTP                  HtppReponseMessage  
HTTP版本   Version  
响应状态码   StatuCode  
状态文字描述   ReasonPhrase  

在响应报文的报头集合、主体内容在HtppReponseMessage的体现分别是Headers、Content。

2.3 HttpContent 对象

在HttpRequestMessage和HtppReponseMessage都又一个类型为HttpContent的属性Content,用于表示请求报文和响应报头的主体内容。在HttpContent中有个只读属性Headers可以获取一个HttpContentHeaders,可以利用它获取请求/相应报文的主体内容的相关报头。

注:HttpContentHeaders表示的报头有很多,具体可以查看MSDN文档的 HttpContentHeaders Class

ASP.NET Web API 路由 (上)