zoukankan      html  css  js  c++  java
  • WEBAPI 的简单示例

    一、webapi

    1.在webapiconfig中移除xml的返回格式,返回格式就自动使用Json格式 
    config.Formatters.Remove(config.Formatters.XmlFormatter);

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Http;
    
    namespace WebApplication2
    {
        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
    
                //移除XML格式,返回值自动就变成json格式
                config.Formatters.Remove(config.Formatters.XmlFormatter);
                // Web API 配置和服务
    
                //Web API 路由
                config.MapHttpAttributeRoutes();
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }
    }
    

     2.创建一个pig的控制器

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    
    namespace WebApplication2.Controllers
    {
        public class PigController : ApiController
        {
            //GET: api/Pig
            //public IEnumerable<string> Get()
            //{
            //    return new string[] { "大pig", "value2" };
            //}
            public Pig Get()
           {
                Pig pig = new Pig()
                {
                    Age = 1,
                    Name = "大黄狗"
                };
                return pig;
            }
    
            //GET: api/Pig/5
            public string Get(int id)
            {
                return "value";
            }
    
            //POST: api/Pig
            public void Post([FromBody]string value)
            {
            }
    
            //PUT: api/Pig/5
            public void Put(int id, [FromBody]string value)
            {
            }
            //DELETE: api/Pig/5
            public void Delete(int id)
            {
            }
        }
    }
    

    3.发布webapi网站,url=http://localhost:34050/api/Pig

    二、客户端调用

    新建一个网站,简单一点,就用web窗体,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
        using System.Net;
        public partial class Pig : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                //1.0请求的webapi的url:http://localhost:34050/api/Pig
                //1.0构造一个制定url请求对象
                WebRequest request = WebRequest.Create("http://localhost:34050/api/Pig");
                //2.0指定请求的方法为get
                request.Method = "Get";
               //3.0发出请求获取相应对象
                WebResponse response = request.GetResponse();
    
                //4.0获取相应报文体中的数据
                System.IO.Stream st = response.GetResponseStream();
    
                //5.0将st转换成字符串
                string resStr = string.Empty;
                using (System.IO.StreamReader sr = new System.IO.StreamReader(st))
                {
                    //从当前流的开始位置读至结束位置
                    resStr = sr.ReadToEnd();//{"Age":1,"Name":"大黄狗"}
                }
    
                //6.0将结果绑定到Grid上
                //将json格式的字符串反序列化成集合
                System.Web.Script.Serialization.JavaScriptSerializer jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();
                ResultPig rpig= jsoner.Deserialize<ResultPig>(resStr);
                //如果结果是[{},{}]
                //jsoner.Deserialize<List<ResultPig>>(resStr);
                List<ResultPig> list = new List<ResultPig>() { rpig };
                GridView1.DataSource = list;
                GridView1.DataBind();
    
                //Response.Write(resStr);
            }
        }
        public class ResultPig
        {
            public int Age { get; set; }
            public string Name { get; set; }
        }
    }
    

      

      

     

  • 相关阅读:
    #415 Div2 Problem C Do you want a data? (math && 前后缀和 && 快速幂)
    KMP模版 && KMP求子串在主串出现的次数模版
    Codeforces 1140G Double Tree 倍增 + dp
    Codeforces 1140F Extending Set of Points 线段树 + 按秩合并并查集 (看题解)
    Codeforces 442D Adam and Tree dp (看题解)
    DC3求后缀数组板子
    Codeforces 865C Gotta Go Fast 二分 + 期望dp (看题解)
    Codeforces 1137D Cooperative Game (看题解)
    Codeforces 1139E Maximize Mex 二分图匹配
    Codeforces 1139D Steps to One dp
  • 原文地址:https://www.cnblogs.com/lgx5/p/10347702.html
Copyright © 2011-2022 走看看