POST/PUT/DELETE请求
2023/4/7大约 1 分钟
POST/PUT/DELETE请求
使用Json或Xml提交
使用[XmlContent]或[Parameter(Kind.XmlBody)]修饰强类型模型参数,表示提交xml 使用[JsonContent]或[Parameter(Kind.JsonBody)]修饰强类型模型参数,表示提交json
// POST webapi/user  
// Body user的json文本
[HttpPost("webapi/user")]
ITask<UserInfo> AddUserWithJsonAsync([JsonContent] UserInfo user);
// PUT webapi/user  
// Body user的xml文本
[HttpPut("webapi/user")]
ITask<UserInfo> UpdateUserWithXmlAsync([XmlContent] UserInfo user);使用x-www-form-urlencoded提交
使用[FormContent]或[Parameter(Kind.Form)]修饰强类型模型参数 使用[FormField]或[Parameter(Kind.Form)]修饰简单类型参数
// POST webapi/user  
// Body Account=laojiu&Password=123456
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithFormAsync(
    [FormContent] UserInfo user);
// POST webapi/user  
// Body Account=laojiu&Password=123456&fieldX=xxx
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithFormAsync(
    [FormContent] UserInfo user,
    [FormField] string fieldX);
// POST webapi/user  
// Body Account=laojiu&Password=123456&fieldX=xxx
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserAsync(
    [Parameter(Kind.Form)] UserInfo user,
    [Parameter(Kind.Form)] string fieldX);使用multipart/form-data提交
使用[MulitpartContent]或[Parameter(Kind.FormData)]修饰强类型模型参数 使用[MulitpartText]或[Parameter(Kind.FormData)]修饰简单类型参数 使用MulitpartFile类型作为提交的文件
// POST webapi/user  
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithMulitpartAsync(
    [MulitpartContent] UserInfo user);
// POST webapi/user  
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithMulitpartAsync(
    [MulitpartContent] UserInfo user,
    [MulitpartText] string nickName,
    MulitpartFile file);
// POST webapi/user  
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithMulitpartAsync(
    [Parameter(Kind.FormData)] UserInfo user,
    [Parameter(Kind.FormData)] string nickName,
    MulitpartFile file);使用具体的HttpContent类型提交
// POST webapi/user  
// Body Account=laojiu&Password=123456
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithFormAsync(
    FormUrlEncodedContent user);
// POST webapi/user  
// Body Account=laojiu&Password=123456&age=18
[HttpPost("webapi/user")]
ITask<UserInfo> UpdateUserWithFormAsync(
    FormUrlEncodedContent user,
    [FormField] int age);如果参数是类型是HttpContent类型的子类,如StringContent、ByteArrayContent、StreamContent、FormUrlEncodedContent等等,则可以直接做为参数,但是必须放在其它参数的前面
贡献者
Ezreal陈国伟