WCF 的 WebGet 方式
2015-09-28 16:53
211 查看
.NET 3.5以后,WCF中提供了WebGet的方式,允许通过url的形式进行Web 服务的访问。在以前的代码中,写过多次类似的例子,但总是忘记如何配置,现在将设置步骤记录如下:
endpoint通讯协议设置成 webHttpBinding
endpoint的行为设置成 <webHttp />
在接口上加入 WebGet 的Attributes
示例代码如下: web.config文件的配置
WCF接口的设置,这里加入了对URI模板(UriTemplate)和JSON(WebMessageFormat.Json)的支持:
测试:打开IE浏览器,在地址栏输入:http://localhost:3000/Services/ShowerService.svc/hello/abc,将会看到访问后的结果。 调试:将Web.config中的 <webHttp /> 修改为 <webHttp helpEnabled="true" />将可以在浏览器页面中列举出可用接口,并提供提交的数据样例。打开IE浏览器,在地址栏输入:http://localhost:3000/Services/ShowerService.svc/help 即可。 Siverlight 访问:使用SL的WebClient访问WebInvoke方法时,不要忘记将 HttpRequestHeader.ContentType 设置成 application/json,代码如下所示:
endpoint通讯协议设置成 webHttpBinding
endpoint的行为设置成 <webHttp />
在接口上加入 WebGet 的Attributes
示例代码如下: web.config文件的配置
<system.serviceModel> <services> <service name="Services.ShowerService"> <endpoint binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Services.IShowerService" /> </service> </services> <behaviors> <endpointBehaviors> <behavior name="WebBehavior"> <webHttp /> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
WCF接口的设置,这里加入了对URI模板(UriTemplate)和JSON(WebMessageFormat.Json)的支持:
namespace Services { [ServiceContract] public interface ShowerService { [OperationContract] [WebGet(UriTemplate="/Hello/{name}", RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)] string Hello(string name); } }
测试:打开IE浏览器,在地址栏输入:http://localhost:3000/Services/ShowerService.svc/hello/abc,将会看到访问后的结果。 调试:将Web.config中的 <webHttp /> 修改为 <webHttp helpEnabled="true" />将可以在浏览器页面中列举出可用接口,并提供提交的数据样例。打开IE浏览器,在地址栏输入:http://localhost:3000/Services/ShowerService.svc/help 即可。 Siverlight 访问:使用SL的WebClient访问WebInvoke方法时,不要忘记将 HttpRequestHeader.ContentType 设置成 application/json,代码如下所示:
WebClient client = new WebClient(); client.Headers[HttpRequestHeader.ContentType] = "application/json";
相关文章推荐
- AngularJs学习笔记一
- Swift 2.0中的数据类型
- C++ primer 5 笔记4 chapter 4 表达式
- ARM交叉编译工具链制作
- 怎样将shp文件的坐标点导出来
- JS中语句使用的注意事项
- C++中的static关键字 (转载)
- Android Service全解(三)之 Foreground Service(怎么让Android程序一直后台运行,像QQ一样不被杀死?)
- Improved Noise reference implementation
- java synchronized详解 第一篇
- 二叉树的建立和遍历
- js+jquery检测用户浏览器型号(转)
- 谈业务流程全生命周期管理支撑业务流程再造(2)
- 20150913 Linux Shell
- libevent学习笔记二:使用evdns_getaddrinfo()的例子
- win7 64位系统中使用音乐播放器播放音乐很卡该怎么办?
- CYC-数据库的运用
- curl 命令使用总结
- Spring学习笔记-在Filter中获取SpingIOC容器
- 判断两个字符串是否互为变形词