using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace MvcApi.Controllers
{
public class ProductController : ApiController
{
public class User
{
public string name { set; get; }
}
public Dictionary<string, object> GetList(string id)
{
Dictionary<string, object> list = new Dictionary<string, object>();
list.Add("id",id);
return list;
}
public Dictionary<string, object> PostList2(User name)
{
Dictionary<string, object> list = new Dictionary<string, object>();
list.Add("name",name.name);
return list;
}
}
}
方法名以post开头的接收POST请求,Get开头的接收GET请求,默认GET;
接收post请求的方法参数必须是实体类:
public class User
{
public string name { set; get; }
}
访问URI:http://localhost:15172/api/Product/PostList2
http://url/api/控制器/方法名/参数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace MvcApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
默认返回格式是XML,返回json格式需要在Global.asax.cs里添加:
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace MvcApi { // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明, // 请访问 http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); } } }