WEBAPI的请求方式与请求类型
最近一直在做接口方面的工作,期间遇到了一些坑,所以记录下来防止自己以后忘记。顺便把WEBAPI的请求方式都写一下。
1. HTTPGet
http://localhost:56650/api/v1.0/Hello/GetMethod?ArgA=1&ArgB=2
[HttpGet,Route("GetMethod")]
public async Task<string> Method(string ArgA,string ArgB) {
return await Task.Run(() =>
{
return ArgA + ArgB;
});
}
注意事项:
-
HttpGet 是指定该方法是用POST请求还是GET请求。
-
Route是为了指定路由名称,当你请求的时候需要指定到某个控制器下的路由才能请求到对应的方法。
-
如果API控制器中只有一个GET(或者POST)方法的话,就可以不指定路由名称,然后就可以直接请求控制器,例如http://localhost:56650/api/v1.0/Hello?ArgA=1&ArgB=2
2. HTTPPost
http://localhost:56650/api/v1.0/Hello/GetPostMethod
[HttpPost,Route("GetPostMethodArgs")]
public async Task<string> Method([FromBody]PostArgs Args)
{
return await Task.Run(() =>
{
return Args.ArgsA+Args.ArgsB;
});
}
public class PostArgs
{
public string ArgsA { get; set; }
public string ArgsB { get; set; }
}
-
Post请求方式一般用实体来接收的。
-
如果只希望用单个参数来接收的话,你会发现你接收到的参数永远为null,但是如果你用Object来接收就能拿到了,因为OBJECT也是一个类。