標籤:
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 路由 (上)