http服务 Web API的使用
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的使用的更多相关文章
- Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然使用上一季的的项目背景(系列地址http://www.cnblogs.com/fzrain/p/34 ...
- 解决.NET Web API生成的Help无Controller说明&服务端接收不到请求
今天在用.NET Web API写一个接口的时候遇到一个问题.在Controller中新加了一个方法,客户端就不能请求接口了,当时建WEB API项目是用的VS默认设置,在服务端打断点一直没有进去,而 ...
- [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
本文转自:http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然 ...
- 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能
文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...
- 让Web API支持Protocol Buffers
简介 现在我们Web API项目基本上都是使用的Json作为通信的格式,随着移动互联网的兴起,Web API不仅其他系统可以使用,手机端也可以使用,但是手机端也有相对特殊的地方,网络通信除了wifi, ...
- ASP.NET Web API 2 入门
本文参考:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web ...
- 让Web API支持$format参数的方法
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web AP ...
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示
随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是 ...
- 使用Jil序列化JSON提升Asp.net web api 性能
JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了 ...
随机推荐
- Unity3D开发必备神器(Visual Studio Tools for Unity)
Unity3D开发必备神器(Visual Studio Tools for Unity) 开发Unity3D程序你用的什么IDE呢? 1.MonoDevelop 2.VS 可能你的回答是这样的,我用的 ...
- IE通过推理IE陈述的版本号
样例: 1. <!--[if !IE]> 除IE外都可识别 <![endif]--> 2. <!--[if IE]> 全部的IE可识别 <![endif]-- ...
- iOS UIWebView键盘操控
+-------------------------+ 假设你有以下的问题,也许这篇文章将帮助你. 键盘遮盖了UIWebView. 怎样拖动UIWebView来移除键盘. 键盘出现时UIWebView ...
- CentOS 5.8安装SugarCRM 6.5版本
环境:CentOS 5.8,安装了Asterisk 1.8 升级php到5.2SugarCRM 6.5: Minimum PHP version required is 5.2.0. You are ...
- DropDownListFor的用法
Asp.Net MVC中DropDownListFor的用法 在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. ...
- DLL文件的引用
首先我们先要写一个DLL文件: 我先创建一个win32的DLL工程,在工程中添加了Math.h和Math.cpp文件,具体内容如下: Math.h: #pragma once #include &qu ...
- TDD单元测试驱动
使用IdleTest进行TDD单元测试驱动开发演练(2) [前言] 1. 有关上篇请参见<使用IdleTest进行TDD单元测试驱动开发演练(1)>,有关本篇用到Entity Fram ...
- MS数据库优化查询最常见的几种方法
1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ...
- 简单的mvc之三:灵活的路由(上)
在上一篇关于管线的随笔中已经提及了管线,通过对管线的分析,我们可以得到下面几个结论:路由系统由URLRoutingModule模块实现,它订阅了PostResolvRequestCache事件:路由系 ...
- 增加窗体边框3D效果
/// <summary> /// 增加窗体边框3D效果 /// </summary> /// <param name="e"></par ...