1、修改API路由
在 项目中有个App_Start文件夹中的WebApiConfig.cs重新设定访问路由
public static class WebApiConfig { public static void Register(HttpConfiguration config) { //原来的默认路由 //config.Routes.MapHttpRoute( // name: "DefaultApi", // routeTemplate: "api/{controller}/{id}", // defaults: new { id = RouteParameter.Optional } //); //修改后的路由 config.Routes.MapHttpRoute( name: "ActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } }
在项目中Global.asax内引用WebApiConfig中设定好的路由
public class WebApiApplication : 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); } }
创建控制项目中的Controllers文件夹中新建控制器
在新建好的控制器中定义方法
/// <summary> /// 用户登陆 /// </summary> /// <param name="postinfo"></param> /// <returns></returns> [HttpPost] public HttpResponseMessage UserLogin([FromBody]string postinfo) { //方法内的代码 XXXXXXXXX //返回json信息 下面会有定义返回形式,默认为XML方式返回 return ReturnHttpMessage.HttpMessage(JsonConvert.SerializeObject(user)); }
PS:必须要在方法头部定义好[HttpPost]或者[HttpGet]、[HttpPut]、[HttpDELETE]的请求方式
设定好路由后访问地址改变为:http://xxx(域名)/api/XXX(控制器)/XXXX(定义的方法)
http://localhost:8035/api/Login/UserLogin
2、修改设定的返回信息方式
在控制器文件(Controllers)中添加个ReturnHttpMessage类
/// <summary> /// 返回UTF8格式的json /// </summary> /// <param name="jsoninfo">json字符串</param> /// <returns></returns> public static HttpResponseMessage HttpMessage(string jsoninfo) { return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(jsoninfo, Encoding.UTF8, "text/json") }; }