首页 > 代码库 > http服务 Web API使用

http服务 Web API使用

http服务 Web API使用

一.概念:

Web API是网络应用程序接口。

详情百度百科:

http://baike.baidu.com/link?url=X1l2dlU9FlQmupX24-9qoZ9WHtU_baub9GsLJqKfO7G425mmpGEsU_yLCLjuMDVbmxr3EgwHXHTGxSEfp0sm26Hb3gevnVMw5Fvzgtl2TjW

二.优点和缺点:

 

三.Demo:

1.新建项目WebApi_Demo

技术分享

2.选择Web API模板:

技术分享

3.新建控制器TestController.css

注意:模板选择空API控制器

技术分享

3.访问api接口:

api/Test/Get

默认返回的是xml

技术分享

如下配置后可以返回json

技术分享

 

 

 

4.控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Mvc;

namespace WebApi_Demo.Controllers
{
    public class TestController : ApiController
    {
        // GET api/Tes/5
        public string Get(int id)
        {
            return "hellow web api!";
        }

        // GET api/Tes/5
        public Person Get()
        {
            var p = new Person();
            p.Name = "张三";
            p.Age = 18;//张三一直年轻
            return p;
        }

        // GET api/Tes/5
        public JsonResult GetPerson()
        {
            var p = new Person();
            p.Name = "张三";
            p.Age = 18;//张三一直年轻

            var json = new JsonResult();
            json.Data = p;
            json.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            return json;
        }

    }


    public class Person
    {
        public string Name { get; set; }

        public int Age { get; set; }
    }
}

 

5.返回json格式:

首先找到Global.asax文件:

配置:

经过测试只要清除就可以了

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

//清除返回使用xml格式
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

//
添加返回使用json格式 GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));

 

6.配置Action去标识地址:

在WebApiConfig.cs文件中配置

切记:如果不想删除默认的路由,那么把这条路由放到前面

 

  config.Routes.MapHttpRoute(
              name: "action",
              routeTemplate: "api/{controller}/{action}/{id}",
              defaults: new { id = RouteParameter.Optional }
          );

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

 

http服务 Web API使用