WCF服务轻量级服务,可供JS调用

返回值格式:XML、Json

工程结构:

示例代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace RESTfulWebServices
{
public class UserInfo
{
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
}

实体类

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web; namespace RESTfulWebServices
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "GetList/{name1}/{name2}",
BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
List<UserInfo> GetList(string name1, string name2); [OperationContract]
[WebGet(UriTemplate = "GetUserInfo",
BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Xml)]
UserInfo GetUserInfo();
}
}

服务契约

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text; namespace RESTfulWebServices
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
public class Service1 : IService1
{
public List<UserInfo> GetList(string name1, string name2)
{
List<UserInfo> list = new List<UserInfo>();
UserInfo u1 = new UserInfo();
u1.Age = ;
u1.Name = name1;
u1.Sex = "女";
list.Add(u1); UserInfo u2 = new UserInfo();
u2.Age = ;
u2.Name = name2;
u2.Sex = "男";
list.Add(u2); return list;
} public UserInfo GetUserInfo()
{
UserInfo u2 = new UserInfo();
u2.Age = ;
u2.Name = "王老五";
u2.Sex = "男";
return u2;
}
}
}

服务实现

 <?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="GetPostBehavior" name="RESTfulWebServices.Service1">
<endpoint address="" behaviorConfiguration="GetPostEndBehaviors" binding="webHttpBinding"
contract="RESTfulWebServices.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="GetPostEndBehaviors">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="GetPostBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>

配置文件

运行结果:

无参服务调用方式:地址+方法名 http://localhost:1768/Service1.svc/GetUserInfo

XML格式返回值:

带参数服务调用方式:地址+方法名+参数1+参数2+参数N  http://localhost:1768/Service1.svc/GetList/Jim/Tom

Json格式返回值:

示例源码下载:RESTfulWebServices.rar

RESTful 服务(配备 WCF)介绍

最新文章

  1. 【WP开发】不同客户端之间传输加密数据
  2. Enterprise Architect的共享Respository设置,postgresql数据库
  3. DOM操作 append prependTo after before
  4. C#网页采集
  5. ubuntu下启动和关闭tomcat的简单方法
  6. SQL Server 系统视图
  7. iOS多线程常用类说明--备用参考
  8. java多态---内存关系
  9. linux 之 yum 介绍 &lt;转&gt;
  10. Node做中转服务器,转发接口
  11. [BZOJ3751] [NOIP2014] 解方程 (数学)
  12. Netty1:初识Netty
  13. Linux第五节课学习笔记
  14. HTTP 错误码
  15. Python PEP-8编码风格指南中文版
  16. 基于R语言的时间序列指数模型
  17. guxh的python笔记八:特殊方法
  18. bzoj4237: 稻草人 cdq分治 单调栈
  19. 【Java】浅谈Java IO
  20. 【一】php 基础知识

热门文章

  1. Spring 之 @ComponentScan以及mock Spring MVC
  2. 将从数据库中获取的数据写入到Excel表中
  3. jQuery垂直手风琴菜单 菜单项带小图标
  4. API接口幂等性框架设计
  5. scala学习手记2 - scala中的循环
  6. tech| kafka入门书籍导读
  7. JavaScript 知识记录
  8. Linux:配置Linux网络和克隆虚拟机并更改配置
  9. iOS自动化探索(六)自动化测试框架pytest - fixtures
  10. 【scala】apply和update