MVC中的webApi

namespace t3_WebAPI.Controllers//基于资源的
{
    public class UserInfoController : ApiController//继承apicontroller
    {
        // GET api/userinfo
        //使用Method=Get的方式请求url=api/userinfo,则这个方法会被调用执行
        //查询所有信息
        public IEnumerable Get()
        {
            List list=new List();


            list.Add(new UserInfo()
            {
                Id = 1,
                Name = "clx"
            });
            list.Add(new UserInfo()
            {
                Id = 2,
                Name = "gj"
            });
            list.Add(new UserInfo()
            {
                Id = 3,
                Name = "hr"
            });
            list.Add(new UserInfo()
            {
                Id = 4,
                Name = "hqg"
            });


            return list;
        }


        // GET api/userinfo/5
        //查询单条信息
        public string Get(int id)
        {
            return "value";
        }


        // POST api/userinfo
        //增加
        //public void Post(string value)
        //{
        //}
        [HttpPost]
        public void Add(string value)
        {
            
        }


        // PUT api/userinfo/5
        //修改
        [HttpPut]
        public void Put(int id, string value)
        {
        }


        // DELETE api/userinfo/5
        //删除
        [HttpDelete]
        public void Delete(int id)
        {
        }
    }
}
1.上面的方法的访问路径:
localhost:8080/api/uerinfo(默认html形式展示)

2.怎么调用(两种方式的区别就是第二种可以跨域)

方式一:jquery的ajax

指定请求的数据类型: contentType: "application/json; charset=utf-8",//数据类型
主要的属性:
type:请求方式,包括Get、Post、Put、Delete
url:请求资源,根据路由规则编写
data:请求数据,为json格式
contentType:请求数据的类型及编码
dataType:返回的数据类型,可以是text、json
success:成功处理的回调函数
备注中为修改请求的示例
注意:使用js的异步操作,不可以跨域访问



    
    
    


    
    
编号 姓名

方式二:HttpClient对象

namespace t3_Client.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            //客户端对象的创建与初始化
            HttpClient client=new HttpClient();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            //执行Get操作
            HttpResponseMessage response= client.GetAsync("http://localhost:2460/api/userinfo").Result;
            var list= response.Content.ReadAsAsync>().Result;//异步的(读取正文数据ReadAsAsync用泛型可以指定类型)
            ViewData.Model = list;

            return View();
        }

    }
}

两种web服务
SOAP风格:基于方法,产品是WebService
REST风格:基于资源,产品是WebAPI
可以返回json、xml类型的数据


你可能感兴趣的:(C#)