Web API 示例列表

HttpClient 示例

必应翻译示例 | VS 2012 源

演示如何使用 HttpClient 类调用 Microsoft Translator 服务。 Microsoft Translator 服务 API 需要 OAuth 令牌,应用程序通过向 Azure 令牌服务器发送对翻译服务的每个请求获取该令牌。 令牌服务器的结果将馈送到发送到翻译服务的请求中。 在运行此示例之前,必须从 Azure 市场 获取应用程序密钥,并在 AccessTokenMessageHandler 示例类中填写信息。

Google Maps 示例 | 详细说明 | VS 2012 源

使用 HttpClientGoogle Maps API 下载 Redmond、WA 的地图,将其保存为本地文件,并打开默认图像查看器。

Twitter 客户端示例 | 详细说明 | VS 2012 源

演示如何使用 HttpClient 编写简单的 Twitter 客户端。 该示例使用 HttpMessageHandler 将 OAuth 身份验证信息插入传出 的 HttpRequestMessage 中。 使用 JSON.NET 读取 Twitter 的结果。 在运行此示例之前,必须 从 Twitter 获取应用程序密钥,并在 OAuthMessageHandler 示例类中填写信息。

世界银行示例 | 详细说明 | VS 2010 源 | VS 2012 源

演示如何使用 JSON.NET 来分析结果,从世界银行数据站点检索数据。

Web API 示例

使用 ASP.NET Web APIVS 2012 源入门 |

演示如何创建支持 HTTP GET 请求的基本 Web API。 包含教程“你的第一个 ASP.NET Web API”的源代码。

ASP.NET Web API JavaScript 方案 - 注释 | VS 2012 源

演示如何使用 ASP.NET Web API 生成支持浏览器客户端且可使用 jQuery 轻松调用的 Web API。

联系人经理 | VS 2010 源

此示例使用 ASP.NET Web API 生成简单的联系人管理器应用程序。 该应用程序由 ASP.NET MVC 应用程序使用的联系人管理器 Web API 和用于显示和管理联系人列表的Windows Phone应用程序组成。

批处理示例 |详细说明 | VS 2012 源

演示如何在 ASP.NET 内实现 HTTP 批处理。 批处理包括将多个 HTTP 请求置于单个 MIME 多部分实体正文中,然后作为 HTTP POST 发送到服务器。 请求将单独处理,并将响应放入另一个 MIME 多部分实体正文中,该实体将返回到客户端。

内容控制器示例 | 详细说明 | VS 2010 源 | VS 2012 源

演示如何使用流异步读取和写入请求和响应实体。 示例控制器有两个操作:一个是异步读取请求实体正文并将其存储在本地文件中的 PUT 操作,另一个是返回本地文件内容的 GET 操作。

自定义程序集冲突解决程序示例 | VS 2012 源

演示如何修改 ASP.NET Web API以支持从动态加载的库程序集中发现控制器。 该示例实现一个自定义 IAssembliesResolver,该 IAssembliesResolver 调用默认实现,然后将库程序集添加到默认结果。

自定义媒体类型格式化程序示例 | 详细说明 | VS 2010 源

演示如何使用 BufferedMediaTypeFormatter 基类创建自定义媒体类型格式化程序。 此基类适用于主要使用同步读取和写入操作的格式化程序。 除了显示媒体类型格式化程序外,该示例还演示了如何通过将它注册为应用程序的 HttpConfiguration 的一部分来挂接它。 请注意,对于主要使用异步读取和写入操作的格式化程序,还可以直接使用 MediaTypeFormatter 基类。

自定义参数绑定示例 | 详细说明 | VS 2010 源

演示如何自定义参数绑定过程,这是确定如何将请求中的信息绑定到操作参数的过程。 在此示例中,主控制器有四个操作:

  1. BindPrincipal 演示如何从自定义泛型主体而不是从 HTTP GET 消息绑定 IPrincipal 参数;
  2. BindCustomComplexTypeFromUriOrBody 演示如何绑定复杂类型参数,该参数可能来自消息正文或 HTTP POST 消息的请求 URI;
  3. BindCustomComplexTypeFromUriWithRenamedProperty 演示如何使用来自 HTTP POST 消息的请求 URI 的重命名属性绑定复杂类型参数;
  4. PostMultipleParametersFromBody 演示如何从 POST 消息的正文中绑定多个参数;

文件上传示例 | 详细说明 | VS 2012 源

演示如何使用 MIME 多部分文件上传将文件上传到 ApiController,以及如何使用 ProgressNotificationHandler 通过 HttpClient 设置进度通知。 控制器异步读取 HTML 文件上传的内容,并将一个或多个正文部分写入本地文件。 响应包含有关上传的文件 (或) 文件的信息。

文件上传到 Azure Blob 存储示例 | 详细说明 | VS 2012 源

此示例类似于文件上传示例,但不是将上传的文件保存在本地磁盘上,而是使用适用于 .NET 的 Windows Azure SDK 异步将文件上传到 Azure Blob 存储。 它还提供一种机制,用于列出Azure Blob 存储容器中当前存在的 blob。 可以尝试针对 Azure SDK 附带的 Azure 存储模拟器 运行的示例。 如果有 Azure 存储帐户,也可以针对实际存储服务运行。

Http 消息处理程序管道示例 | 详细说明 | VS 2010 源

演示如何在客户端 (HttpClient) 和服务器 (ASP.NET Web API) 上连接 HttpMessageHandler 实例。 在示例中,客户端和服务器上使用相同的处理程序。 虽然在两个位置运行完全相同的处理程序很少见,但客户端和服务器端的对象模型是相同的。

JSON 上传示例 | VS 2012 源

演示如何在 ApiController 中上传和下载 JSON。 此示例使用最小 ApiController ,并使用 HttpClient 对其进行访问。

混合示例 | 详细说明 | VS 2012 源

演示如何从 ApiController 操作中异步访问多个远程站点。 每次命中操作时,都会异步执行请求,因此不会阻止任何线程。

内存跟踪示例 | 详细说明 | VS 2010 源

此示例项目创建一个 Nuget 包,用于将自定义内存中跟踪编写器安装到 ASP.NET Web API 应用程序中。

MongoDB 示例 | 详细说明 | VS 2012 源

演示如何使用存储库模式将 MongoDB 用作 ApiController 的持久存储。

响应正文处理器示例 | VS 2012 源

演示如何将响应实体 (即 HTTP 响应正文在传输到客户端之前) 到本地文件,以及如何异步对该文件执行其他处理。 该示例实现了一个 HttpMessageHandler ,该实体包装响应实体,该实体将自身作为正常方式写入输出和本地文件。

上传 XDocument 示例 | 详细说明 | VS 2012 源

演示如何使用 PushStreamContentHttpClient 将 XDocument 上传到 ApiController

验证示例 | VS 2010 源

演示如何在 ASP.NET WebAPI 中对模型使用验证属性来验证 HTTP 请求的内容。 演示如何将属性标记为必需,如何使用框架定义的和自定义验证属性来批注模型,以及如何返回无效模型状态的错误响应。

Web 窗体示例 | 详细说明 | VS 2010 源

显示添加到Web Forms项目的 ApiController。

RestBugs 示例

RestBugs 是一个简单的 bug 跟踪应用程序,演示如何使用 ASP.NET Web API 和新的 HTTP 客户端库来创建超媒体驱动的系统。 此示例包括使用 ASP.NET Web API 的客户端和服务器实现。 服务器使用自定义 Razor 格式化程序来生成资源表示形式。 此示例还提供了一个node.js服务器来说明使用超媒体设计分离客户端和服务器的好处。