Web API请求方式

Get

Get(传递参数)

没有参数的时候data: "" 

方法名以Get开头,WebApi会自动默认这个请求就是get请求

前端代码

    <script type="text/javascript">
        $.ajax({
            url: "/api/default/GetUserByID",
            type: "get",
            dataType:"json",
            data: { "id": "1" },
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

    public class DefaultController : ApiController
    {
        private List<User> _userList = new List<User>
        {
            new User {UserID = 1, UserName = "first", UserEmail = "first@qq.com"},
            new User {UserID = 2, UserName = "second", UserEmail = "second@qq.com"},
            new User {UserID = 3, UserName = "third", UserEmail = "third@qq.com"}
        };

        [HttpGet]
        public User GetUserByID(int id)
        {
            var user = _userList.FirstOrDefault(x=>x.UserID == id);
            if(user == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return user;
        }
    }
    public class User
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public string UserEmail { get; set; }
    }

Get(传递实体)

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/GetUserByModel",
            type: "get",
            contentType: "application/json", 
            dataType: "json",
            data: user,
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

后台代码

        [HttpGet]
        public IEnumerable<User> GetUserByModel(User user)
        {
            return _userList;
        }

 FromUri方式

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/GetUserByModelUri",
            type: "get",
            contentType: "application/json", 
            dataType: "json",
            data: user,
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpGet]
        public IEnumerable<User> GetUserByModelUri([FromUri]User user)
        {
            return _userList;
        }

Get(序列化传递)

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/GetUserByModelSerialize",
            type: "get",
            contentType: "application/json",
            dataType: "json",
            data: {userString: JSON.stringify(user) },
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpGet]
        public User GetUserByModelUri(string userString)
        {
            var user = JsonConvert.DeserializeObject<User>(userString);
            return user;
        }

Post

post传递一个参数

前端代码

单个值传递,json数据不要key后台才能获取到

    <script type="text/javascript">
   
        $.ajax({
            url: "/api/default/Register",
            type: "post",
            dataType: "json",
            data: {"":"1" }, // post 不能加参数
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPost]
        public User Register([FromBody]int id)
        {
            string param = HttpContext.Current.Request.Form["id"];
            var user = _userList.FirstOrDefault(x=>x.UserID == id);
            return user;
        }

Post传递json,后台实体接收

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/Register",
            type: "post",
            dataType: "json",
            data: user, // post 不能加参数
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPost]
        public User Register(User user)
        {
            return user;
        }

Post传递序列化实体

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/Register",
            type: "post",
            dataType: "json",
            contentType: 'application/json',
            data: JSON.stringify(user),  
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPost]
        public User Register(User user)
        {
            return user;
        }

Post传递object参数

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/RegisterObject",
            type: "post",
            dataType: "json",
            data: { "User": user, "Info": "信息" },  
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPost]
        public string RegisterObject(JObject jData)
        {
            dynamic json = jData;
            JObject jUser = json.User;
            string info = json.Info;
            var user = jUser.ToObject<User>();
            return string.Format("{0}_{1}_{2}_{3}", user.UserID, user.UserName, user.UserEmail, info);
        }

 Put

put带一个参数

不能带key

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/RegisterObject",
            type: "put",
            dataType: "json",
            data: { "":"1" },  
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPut]
        public User RegisterObject([FromBody]int id)
        {
            var user = _userList.FirstOrDefault(users => users.UserID == id);
            return user;
        }

Put传递Json

前端代码

    <script type="text/javascript">
       var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/RegisterObject",
            type: "put",
            dataType: "json",
            data: user,  
            success: function (data) {
                alert(JSON.stringify(data));
            }            
        });
    </script>

 

后台代码

        [HttpPut]
        public User RegisterObject(User user)
        {
            return user;
        }

Put传递序列化json

前端代码

    <script type="text/javascript">
        var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/RegisterObject",
            type: "put",
            dataType: "json",
            contentType: 'application/json',
            data: JSON.stringify(user),
            success: function (data) {
                alert(JSON.stringify(data));
            }
        });
    </script>

 

后台代码

        [HttpPut]
        public User RegisterObject(User user)
        {
            return user;
        }

 Put传递Object

前端代码

    <script type="text/javascript">
        var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" };
        $.ajax({
            url: "/api/default/RegisterObject",
            type: "put",
            dataType: "json",
            data: { "User": user, "Info": "信息" },
            success: function (data) {
                alert(JSON.stringify(data));
            }
        });
    </script>

 

后台代码

        [HttpPut]
        public string RegisterObject(JObject jData)
        {
            dynamic json = jData;
            JObject jUser = json.User;
            string info = json.Info;
            var user = jUser.ToObject<User>();
            return string.Format("{0}_{1}_{2}_{3}", user.UserID, user.UserName, user.UserEmail, info);
        }

 

posted @ 2020-03-16 19:36  bradleydan  阅读(247)  评论(0)    收藏  举报