首页 > 代码库 > WebAPI

WebAPI


====》两种网络服务
1.WebService:基于SOAP风格的网络服务,使用方法进行请求
2.WebAPI :基于REST风格的网络服务,使用资源进行请求;5个方法:查一个,查所有,增加,修改,删除就是定义一个控制器继承于WebAPIControler类

 public class UserInfoController : ApiController    {        // GET api/userinfo        public IEnumerable<UserInfo> Get()        {            List<UserInfo> lUsers = new List<UserInfo>();            lUsers.Add(new UserInfo()                 {                     ID=1,                    Name="孙宝"                });            lUsers.Add(new UserInfo()             {                 ID = 2,                Name = "王沙"            });            lUsers.Add(new UserInfo()             {                 ID = 3,                Name = "王闯"             });            return lUsers;        }        // GET api/userinfo/5        [HttpGet]        public string Get(int id)        {            return "value";        }        // POST api/userinfo        [HttpPost]        public void Post([FromBody]string value)        {        }        // PUT api/userinfo/5        [HttpPut]        public void Put(int id, [FromBody]string value)        {        }        // DELETE api/userinfo/5        [HttpDelete]        public void Delete(int id)        {        }    }

 


====》使用 1.jquery 的ajax (缺点,不能跨域) 

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <script src=http://www.mamicode.com/"Scripts/jquery-1.8.2.min.js"></script>    <script type="text/javascript">        $(function () {            LoadList();        });        function LoadList() {            $.ajax({                type: get,//请求方式,可以为get post add delete                data: {},//发送的参数                url: http://localhost:33587/api/UserInfo, //请求的地址                contentType: "application/json;charset=utf-8",//数据格式                dataType: json,  //数据形式                success: function (list) {                    var tlist = $("#list");                    tlist.empty();                    $.each(list, function (index,item) {                        tlist.append(<tr><td> + item.ID + </td><td> + item.Name + </td></tr>);                    });                }            });        }    </script></head><body>    <table border="1">        <tr>            <td>编号</td>            <td>姓名</td>        </tr>        <tbody id="list"></tbody>    </table></body></html>

2.HttpClient

 HttpClient client = new HttpClient();            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));            //执行Get操作            HttpResponseMessage response = client.GetAsync("http://localhost:33587/api/UserInfo").Result;           var lUsers=  response.Content.ReadAsAsync<List<UserInfo>>().Result;           ViewData.Model = lUsers;

 

请求,由路由规则决定

    public static class WebApiConfig    {        public static void Register(HttpConfiguration config)        {            config.Routes.MapHttpRoute(                name: "DefaultApi",                routeTemplate: "api/{controller}/{id}",                defaults: new { id = RouteParameter.Optional }            );        }    }

 

WebAPI