【C#】Web Api

Web API

什么是Web API

原文链接:https://www.cnblogs.com/guyun/p/4589115.html

官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。

Web API在ASP.NET完整框架中地位如下图,与SignalR一起同为构建Service的框架。Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。Picture20

WebAPI的控制器与MVC控制器的主要区别:

  1. WebAPI控制器类继承自 ApiController 类
  2. WebAPI 方法返回的是原始数据,而不是视图

路由机制(对比MVC)

原文链接:https://www.cnblogs.com/landeanfen/p/5501490.html


功能

Web API的主要功能

  1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
  2. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

WebApi FromBody参数

WebApi程序可在方法参数前加[FromBody]标识,表示该参数值应该从请求的Body中获取,而不是从URL中获取。

从URL获取参数值的方式的弊端是URL有长度限制,当超过浏览器的最大URL长度时请求将被浏览器拒绝,根本不会发出去。

因此,当参数值过大时需要用[FromBody]参数进行传输。

注意:通过地址栏传参时,不可以用[FromBody]

查找

// GET api/values/5
        public string Get(string test)
        {
            //test = "王";
            try
            {
                SqlConnection conn = new SqlConnection(constr);
                //string spName = "Select * from people where name='王'";
                string spName = "userinfo_sel";
                SqlParameter[] selpara =
                {
                    new SqlParameter("@name",test)
                };
                SqlCommand cmd = new SqlCommand(spName, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                conn.Open();
                foreach (SqlParameter parameter in selpara)
                {
                    cmd.Parameters.Add(parameter);
                }
                SqlDataReader reader = cmd.ExecuteReader();
                List<User> list = new List<User>();
                while (reader.Read())
                {
                    User user = new User()
                    {
                        Name = reader["Name"].ToString(),
                        Sex = reader["Sex"].ToString(),
                        Age = Convert.ToInt16(reader["Age"])
                    };
                    list.Add(user);
                }
                return JsonConvert.SerializeObject(list);
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }

测试api

通过在地址栏输入http://localhost:4400/api/values/get?test=%E7%8E%8B

浏览器得到的结果:
在这里插入图片描述


Publish——发布至IIS

https://www.cnblogs.com/zouhuayu/p/8471820.html


Web Api 的调用

猜你喜欢

转载自blog.csdn.net/unclebober/article/details/86614805