ASP.NET MVC WebApi 定義Get/Post/Put/Delete方法。使用Postman工具調用相應的方法。根據方法的特性不一樣、參數的特性不一樣,所訪問的方式也不一樣。html
建立一個新的WebApi的項目。控制器自動生成的代碼以下:json
首先看到類的上面有個特性默認以下:api
[Route("api/[controller]")]app
這個是訪問時的路由規則(eg:http://localhost:port/api/conroller)。訪問地址時不須要輸入方法名,路由規則會根據參數的狀況自動匹配。工具
建議將路由規則修改成post
[Route("api/[controller]/[action]")]url
這樣的話咱們就能輸入方法名精確到咱們須要訪問的方法。下面開始介紹Get/Post/Put/Delete請求。spa
如下爲使用Postman時請求GET的簡單說明:.net
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}code
Postman使用GET請求,Url地址便可(eg:http://localhost:port/api/values/Get),若是該方法有參數,則在Params輸入對應的參數名和參數值便可(即url地址中尾部增長'?key1=val1&key2=val2')。獲得的返回值是["value1","value2"]
[HttpGet("{id}")]
public int Get(int id)
{
return id;
}
[HttpGet("{id}")]這個特性是自動生成的,具體的話沒有深刻的研究。請求的參數方式會有些不一樣。他所攜帶的參數請求規則爲:
http://localhost:54261/api/values/Get/idvalue 。
[HttpPost]
public string Post(string str)
{return str;
}
Headers框下方的"Content-Type" 所對應的值應爲 "application/x-www-form-urlencoded"
而後在"Body"框下輸入對應的參數名和參數值,點擊"Send"按鈕便可請求而且獲得返回值。
[HttpPost]
public string Post([FromBody]string value)
{return value;
}
倘若傳遞的參數類型的特性爲[FromBody]時,須要注意:做爲被標記爲[FromBody]的參數只能出現一次,而且 [FromBody] 參數不能是基本的數據類型(如byte、int、bool、DateTime、string等)。
因此以上的方法是不能被訪問到的。
public class ReqTest
{
public int id { get; set; }
public string name { get; set; }
}[HttpPost]
public string Post([FromBody]ReqTest req)
{
return req.id.ToString() + req.name;
}
[FromBody]標記參數須要使用json的格式進行傳遞。
Headers框下方的"Content-Type" 所對應的值應爲 "application/json"
而後在"Body"框下選擇"raw",輸入json格式的參數進行訪問(eg:{"id":9527,"name":"Mark"})。
獲得的返回值爲"9527Mark"
PUT請求和Delete請求實際用到的狀況不是不少。使用方式跟POST差很少,只須要注意將Postman的請求方式改爲對應的PUT或者Delete方式便可。