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 = ;//张三一直年轻
return p;
} // GET api/Tes/5
public JsonResult GetPerson()
{
var p = new Person();
p.Name = "张三";
p.Age = ;//张三一直年轻 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; }
}
}

三.配置:

1.返回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"));

2.通过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 }
);

3.删除和更新接口错误提示:

调用wewb api 中的put和delete报错,Method Not Allowed 405错误。

原因是,安全起见,api一般不允许操作修改和删除的。

解决方案:

在web.config中增加这些代码:

<system.webServer>

<--增加的代码start-->

 <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule"/>
    </modules>

<--增加的代码end-->
</system.webServer>

http服务 Web API的使用的更多相关文章

  1. Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务

    前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然使用上一季的的项目背景(系列地址http://www.cnblogs.com/fzrain/p/34 ...

  2. 解决.NET Web API生成的Help无Controller说明&服务端接收不到请求

    今天在用.NET Web API写一个接口的时候遇到一个问题.在Controller中新加了一个方法,客户端就不能请求接口了,当时建WEB API项目是用的VS默认设置,在服务端打断点一直没有进去,而 ...

  3. [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务

    本文转自:http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然 ...

  4. 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能

    文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...

  5. 让Web API支持Protocol Buffers

    简介 现在我们Web API项目基本上都是使用的Json作为通信的格式,随着移动互联网的兴起,Web API不仅其他系统可以使用,手机端也可以使用,但是手机端也有相对特殊的地方,网络通信除了wifi, ...

  6. ASP.NET Web API 2 入门

    本文参考:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web ...

  7. 让Web API支持$format参数的方法

    public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web AP ...

  8. 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示

    随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是 ...

  9. 使用Jil序列化JSON提升Asp.net web api 性能

    JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了 ...

随机推荐

  1. leetcode第一题--two sum

    Problem:Given an array of integers, find two numbers such that they add up to a specific target numb ...

  2. (UML两个汇总)九种图。

    最后总结UML关系,有明确的关系,现在让我们总结一下UML九图..图往往比文字要直观,因此,当我们开发软件.文件必须是不可或缺的人物,. 以下我将这九种图分了一下: 我们还能够将这九种图分为静态图和动 ...

  3. 实时预览的在线 Markdown 编辑器 - Markdoc

    实时预览的在线 Markdown 编辑器 - Markdoc 最近组内需要为一些项目和系统写文档,发表在公司内的文档平台上,这个平台并不支持markdown,所以打算做一个在线markdown编辑器, ...

  4. 关于xml的一些操作

    一些关于xml的资料: 创建一个xml static void CreateFile() { ; Random random = new Random(); using (XmlTextWriter ...

  5. c#winform关闭窗口时触发的事件

    用户关闭软件时,软件一般会给“是否确认关闭”的提示. 通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClosingEventArgs 的 Cancel 属性设置 ...

  6. IOS内存泄漏

    1. . - (void)viewDidLoad { [superviewDidLoad]; self.view.frame=CGRectMake(, , , ); NSArray *title1=[ ...

  7. mongo查询某个字段是否存在,并删除记录里的这个字段

    查询course表中,存在lectures_count字段的记录信息 db.course.find( { "lectures.lectures_count": { $exists: ...

  8. window wamp下xhprof的安装使用,Graphviz配置

    在新的工作安排下来前赶紧把手上工作优化下,本来是靠xdebug+grindview来的,不过还是麻烦,就换上这个轻量级的性能测试了.网上搜的大多都是lamp环境下的,wamp下的倒是不多,而且不好用, ...

  9. [笔记] OS X and iOS 内核开发

    一.KEXT包的安全性说明 KEXT 程序包及其包含的所有文件及文件夹必须属于 root 用户(用户 id 是 0) KEXT 程序包及其包含的所有文件及文件夹必须属于 wheel 组(组 id 是 ...

  10. C add

    C++学习--应用篇(Windows/Linux)(书籍推荐及分享) 我将以平台划分,分别介绍Windows和Linux下个人认为的好书(与基础篇一样,大部分网络上都有电子版): 对于C++基础类的图 ...