9.0 WebApi

webapi的作用: 一个系统调用另一个系统中的数据时使用

            webapi:根据请求报文获取到响应报文数据的数据,根据响应报文获取到流(流的本质是xml),根据流获取到我们需要的数据
 
webapi:的数据传输的两种格式:  最好用json 因为json传输量小 可以被js解析 ,注意系统默认是xml,所以我们一般需要将其关闭
    将webapi的默认的传回数据的格式修改成Json格式
       1:修改地址: 在加载webapi的方法中
       2:修改的方法: 
            将xml格式移除,只剩下json格式,此时就会将json格式作为默认格式
            config.Formatters.Remove(config.Formatters.XmlFormatter);
    1:xml
    2:json   
  注意点:
          被访问的系统只需要提供url,然后我们会根据url去调用对应的控制器和action方法
  
    总结: webapi 就是一个系统(网站)访问另一个系统(网站的方法)
             1:首先需要创建webapi(注意路由规则(访问webapi的时候需要加上api)) 
                                                  还有所有的webapi中的方法都要加上get(或则post)前缀
             2:注意我们首先需要引用需要被访问的网站(被访问的网站只需要向我们提供url就行),我们根据指定的url调用对应的网站的对应的方法
 
   用C#调用webapi的方法: 注意需要引用 using System.Net;
      try
            {
                //1.0 构造一个请求报文对象
                WebRequest req = WebRequest.Create("http://localhost:3213/api/Values/GetPig");
                req.Method = "Get";
 
                //2.0 发出请求同时获取服务器响应回来的数据对象
                WebResponse resp = req.GetResponse();
 
                //3.0 获取响应报文体中流数据,本质上是一个byte[]数组
                System.IO.Stream stream = resp.GetResponseStream();
 
                //4.0 将流数据转换成字符串 (此时是一个json格式)
                string res = "";
                using (System.IO.StreamReader sr = new System.IO.StreamReader(stream))
                {
                    res = sr.ReadToEnd();
                }
 
                //5.0 打印
                //Response.Write(res);
 
                //5.0 将json字符串反序列化成AA实体
                System.Web.Script.Serialization.JavaScriptSerializer jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();
                //5.0.1 将json格式反序列化成AA对象
                AA model = jsoner.Deserialize<AA>(res);
 
                List<AA> list = new List<AA> { model };
 
                //6.0
                GridView1.DataSource = list;
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }

posted on 2015-05-10 17:04  阿兴的平凡世界  阅读(152)  评论(0)    收藏  举报

导航