1】.部署环境.net4及以上版本。
【2】.vs2010 开发需单独安装vs2010 sp1和mvc4
mvc4:http://www.asp.net/mvc/mvc4
或者 http://down.51cto.com/data/969436
【3】.开发
1.新建项目选择ASP.net MVC 4 Web应用程序
2.选择Web API
3.在新建立的项目里面有已经生成的webapi模版
其中App_Start文件夹下WebApiConfig.cs和RouteConfig.cs文件主要配置api的路由信息。
Controllers文件夹下的文件为api的实现文件。其中ValuesController.cs是示例api文件。
4.新建自己的webapi文件。
在Controllers文件夹上单击鼠标右键,添加--控制器,我们新建一个TestApiController.cs的文件。其中TestApi是我们的Controller的名称在路由中使用。
5.我们新加入两个Get方法api,一个带参一个不带参
6.在WebApiConfig.cs文件中配置路由路径:routeTemplate: "api/{controller}/{Action}/{id}",
然后运行项目我们在地址栏中输入
controller:TestApi
action:我们写的方法名
id:传入的参数
7.同样我们可以写入Post方法等等。
WebApi的Get访问方式比较简单,我们可以通过浏览器url地址直接访问。
但是Post方式比较麻烦,我们可以通过html的form提交post值,当然也可以在PostData里面直接传值。在IOS和Android开发中常用PostData
从在可以端调去[FromBody]类api的时候在传入的参数前一定要加一个“=”号。不然返回是null。
从PostData传入的参数我们以Request来接收,当然可以接收string data等类型。
string postData = Request.Content.ReadAsStringAsync().Result;
public class TestApi2Controller : ApiController
{
///无参数Post
public string PostAaa()
{
return "hellowrold";
}
//有参数从form中传入 id:"=hellowrold"
public string PostFromId([FromBody]string id)
{
return id;
}
//PostData传值
public string PostFromPosData()
{
string postData = Request.Content.ReadAsStringAsync().Result;
return postData;
}
}
WebApi 技巧
1.返回参数去掉xml格式,以纯json格式返回。在WebApiConfig.cs文件中配置
public static void Register(HttpConfiguration config)
{
//设置不以xml格式返回
config.Formatters.Remove(config.Formatters.XmlFormatter);
///
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
2.返回json去掉双引号
//JavaScriptSerializer类在System.Web.Extensions.dll中,注意添加这个引用
JavaScriptSerializer serializer = new JavaScriptSerializer();
//JSON序列化
string result = serializer.Serialize(list);
//格式化Json引号""
var respRet = new HttpResponseMessage { Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json") };
return respRet;