十五天精通WCF——第十三天 用WCF来玩Rest
2015-07-23 15:00
330 查看
原文:十五天精通WCF——第十三天 用WCF来玩Rest
在我们玩wcf的时候,都会潜意识的觉得wcf就是通过soap协议交换消息的,并且可以在basic,tcp,msmq等等绑定中任意切换,
牛逼的一塌糊涂,但是呢,如果说哪一天wcf不再使用soap协议,而是采用json格式的字符串,是不是有一点颠覆你对wcf的认识的???
从传统意义上说,wcf是非常重量级的,很明白的一个例子就是太多太多的配置,尤其是Behavior的配置,而且behavior对wcf来说又是重
中之重,它对wcf的扩展和性能又是最重要的,可恨的是wcf在binding,behavior,contract之中的配置又是非常非常的保守,可以说用
wcf来玩分布式,这些默认配置是完全做不到的,就比如说basicbinding的基类HttpBindingBase。
View Code
好了,大概就说这么多了,如果说你不嫌麻烦,你可以用WCF Rest,还有就是不要忘了很多的默认配置,如果你觉得太繁琐,
可以用用asp.net web api。
在我们玩wcf的时候,都会潜意识的觉得wcf就是通过soap协议交换消息的,并且可以在basic,tcp,msmq等等绑定中任意切换,
牛逼的一塌糊涂,但是呢,如果说哪一天wcf不再使用soap协议,而是采用json格式的字符串,是不是有一点颠覆你对wcf的认识的???
从传统意义上说,wcf是非常重量级的,很明白的一个例子就是太多太多的配置,尤其是Behavior的配置,而且behavior对wcf来说又是重
中之重,它对wcf的扩展和性能又是最重要的,可恨的是wcf在binding,behavior,contract之中的配置又是非常非常的保守,可以说用
wcf来玩分布式,这些默认配置是完全做不到的,就比如说basicbinding的基类HttpBindingBase。
class Program { static void Main(string[] args) { Run(); } /// <summary> /// 报告系统错误 /// </summary> /// <param name="ex"></param> /// <returns></returns> public static void Run() { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://127.0.0.1:1920/HomeService/Add"); Encoding encoding = Encoding.UTF8; string param = new JavaScriptSerializer().Serialize(new { ID = "10", Name = "hxc", SNS = "001" }); byte[] bs = Encoding.ASCII.GetBytes(param); string responseData = String.Empty; req.Method = "POST"; req.ContentType = "application/json"; req.ContentLength = bs.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); reqStream.Close(); } using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { responseData = reader.ReadToEnd().ToString(); } } } }
View Code
好了,大概就说这么多了,如果说你不嫌麻烦,你可以用WCF Rest,还有就是不要忘了很多的默认配置,如果你觉得太繁琐,
可以用用asp.net web api。
相关文章推荐
- [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版
- location.pathname;outline:medium;undefined不能加引号
- OracleBulkCopy的批量数据导入
- poj 2406 Power Strings【最小循环节】
- html中js取值
- UTF-8编码问题编码长度问题
- GRE写作必备句型
- [ASP.NET MVC 小牛之路]17 - 捆绑(Bundle)
- 异步复位同步释放
- 如何使用Ajax进行登录校验
- 在RedHat Linux 9.0下配置DNS服务器Bind 9.2.6
- MySQL数据导出与导入
- cuckoo数据库变更
- 利用ApnsPHP包向IOS推送消息
- JSON学习笔记
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- python-ConfigParser模块【读写配置文件】
- swift页面跳转动画
- 编程式事务管理
- 开始写技术博客了,请大家关注