webapi的post和get请求总结

Posted 三五月儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webapi的post和get请求总结相关的知识,希望对你有一定的参考价值。

1、get请求,传输基础类型数据

[HttpGet]
public string GetTestData(int id,string name)

    return id+name;

$.ajax(
        type:"get",
        url:"http://xxxx/api/Test/GetTestData",
        data:  id: 1, name:"lili",
        success:function(data, status)  
); 

2、get请求,传递实体数据

public class TestModel

    public string ID get;set; 
    public string Name get;set; 

[HttpGet]
public string GetTestDataByModel([FromUri]TestModel testModel)

     return testModel.ID+testModel.Name;

$.ajax(
        type:"get",
        url:"http://xxx/api/Test/GetTestDataByModel",
        data:  ID:"1", Name:"lili",
        success:function(data, status)  
); 

3、post请求,传递基础类型参数

$.ajax(
        type:"post",
        url:"http://xxx/api/Test/PostTestData",
        data: "":"lili",
        success:function(data, status) 
    );

注意:不能使用 data: “name”:”lili”。因为FromBody的机制是=value,没有key的概念。

[HttpPost]
public bool PostTestData([FromBody]string name)

   return true;

4、post请求,传递实体类型参数

[HttpPost]
public bool PostTestDataModel(TestModel testModel)

    return true;

public class TestModel

    public string ID get;set; 
    public string Name get;set; 

$.ajax(
       type:"post",
       url:"http://xxx/api/Test/PostTestDataModel",
       data:  ID:"1", Name:"lili",
       success:function(data, status) 
   );

或者

var postdata =  ID:"1", Name:"lili";
$.ajax(
    type:"post",
    url:"http://xxx/api/Test/PostTestDataModel",
    contentType:'application/json',
    data: JSON.stringify(postdata),
    success:function(data, status) 
);

若是没定义接口的实体类,可以使用类型dynamic。

5、post,传递基础类型数组

var arr = ["1","2","3","4"];
$.ajax(
       type:"post",
       url:"http://xxx/api/Test/PostTestDataArray",
       contentType:'application/json',
       data: JSON.stringify(arr),
       success:function(data, status)  
   );
[HttpPost]
public bool PostTestDataArray(string[] ids)

     return true;

6、post,传递实体集合

var arr = [
        ID:"1", Name:"l1",
        ID:"2", Name:"l2",
        ID:"3", Name:"l3"
   ];
   $.ajax(
       type:"post",
       url:"http://xxx/api/Test/PostTestDataList",
       contentType:'application/json',
       data: JSON.stringify(arr),
       success:function(data, status) 
   );
[HttpPost]
public bool PostTestDataList(List<TestModel> mList)

   return true;

补充:许多场景可以通过使用dynamic和json来传递和接收对象以达到简化问题的效果。

以上是关于webapi的post和get请求总结的主要内容,如果未能解决你的问题,请参考以下文章

webapi设置一个Action同时支持get和post请求

webapi设置一个Action同时支持get和post请求

c# webapi post多个参数

JQuery Ajax POST/GET 请求至 ASP.NET WebAPI

WebApi 接口参数不再困惑:传参详解

WebApi Post 方法总是返回“请求的资源不支持 http 方法 'GET'。”状态:405 方法不允许