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;

.net WebApi开发的更多相关文章

  1. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  2. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  3. Restful WebApi开发实践

    随笔分类 - Restful WebApi开发实践   C#对WebApi数据操作 摘要: ## 目标简化并统一程序获取WebApi对应实体数据的过程,方便对实体进行扩充.原理就是数据服务使用反射发现 ...

  4. 【WebApi系列】浅谈HTTP在WebApi开发中的运用

    WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...

  5. ASP.NET Core WebAPI 开发-新建WebAPI项目 转

    转 http://www.cnblogs.com/linezero/p/5497472.html ASP.NET Core WebAPI 开发-新建WebAPI项目   ASP.NET Core We ...

  6. 基于flask的轻量级webapi开发入门-从搭建到部署

    基于flask的轻量级webapi开发入门-从搭建到部署 注:本文的代码开发工作均是在python3.7环境下完成的. 关键词:python flask tornado webapi 在python虚 ...

  7. 现阶段Mono版本下的WebAPI开发中存在的一些问题

    背景 由于公司积极推动各业务产品服务化,得益于容器化技术的不断发展及普及,项目组的服务也更多地基于Mono,Jexus,Docker,Kubernetes等类库.容器.管理工具运行于Linux系统上. ...

  8. Html5+css3+angularjs+jquery+webAPi 开发手机web(一)

    前言 随着浏览器的发展 HTML5+CSS3 的使用也越来越广泛,一直想学这个,想学那个折腾下来几乎没学到什么东西.工作经验告诉我,要掌握一门技术,就需要在项目中去磨练, 所以我就准备开发一个手机端的 ...

  9. 【WebApi】————.net WebApi开发(一)

    2013年08月08日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 小 中 大 ⁄ 评论关闭 [1].部署环境.net4及以上版本. [2].vs2010  开发需单独安装vs2010 sp1和mvc4 m ...

随机推荐

  1. UTF-8编码的空格(194 160)问题

    前台的字符串传递到后台进行处理,发现了一个较诡异的问题:字符串中的一个空格(ASCII:32)被UTF-8编码之后变成了一个诡异的字符(ASCII:194 和 160的组合)!但在后台其表象还是空格. ...

  2. jquery隐藏侧边栏和折叠侧边栏方法

    两种效果如下所示: 隐藏侧边栏: 折叠侧边栏: 下面,分享隐藏侧边栏实现方法: 实现思路:给body切换class,通过class控制侧边栏和主体部分left 来实现效果 html部分: <di ...

  3. ADO.NET--收藏整理别人的教程

    本文所有内容均从前辈的博客中收集整理而来,仅供自己学习参考的时候快速访问用. ADO.NET入门教程(一) 初识ADO.NET ADO.NET入门教程(二)了解.NET数据提供程序 ADO.NET入门 ...

  4. Spring Data JPA 学习记录1 -- 单向1:N关联的一些问题

    开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问 ...

  5. php 时间戳与日期的转换(转载)

    UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式. a:Unix时间戳存储.处理方便,但是不直观 b:格式化日期直观,但是处理起来不如Unix时间戳那么自如 [关于两者的互相转换] 日  期 ...

  6. Fedora20-64bit cross-compiling arm-linux-gcc

    0按照友善之臂的手册建立交叉编译环境时,添加用户变量,最好是去更改 profile 文件 因为 profile 是所有用户都可以使用的,类似于 windows 中的系统变量 而 .bashrc 只有该 ...

  7. Java Abstract Class & Interface

    一. 抽象类 1. 抽象类:包含了一个抽象方法的类就是抽象类 2. 抽象方法:声明而未被实现的方法,用关键字abstract声明 3. 抽象类被子类继承,子类(如果不是抽象类)必须重写(overrid ...

  8. linux 命令 之判断表达式

    摘自http://www.comptechdoc.org/os/linux/usersguide/linux_ugshellpro.html Tests There is a function pro ...

  9. LPC1768\1769之中断优先级与中断优先级组

    一.背景 USB在持续通信几十万次后,会出现USB IN中断丢失几次的情况,分析是中断优先级不够高,导 致USB中断在排队,然而排队还未完成,又有新的USB中断发生,致使其中断丢失.LPC1769的所 ...

  10. 前端网老姚浅谈:怎么学JavaScript?

    作者:小不了链接:https://zhuanlan.zhihu.com/p/23265155来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信问我( ...