XML-RPC体验详解

黄舟
发布: 2017-03-16 16:53:40
原创
2455人浏览过

今天上园子发现园子已经支持Office2007WebBlog功能,于是看了一下使用的是XML-RPC技术。打开dudu XML-RPCPRCAPI感觉就像是WebService,但是深入看看原来不是,这是才注意到原来XML-PRC在起作用。XML-RPC是什么东东(不要笑我孤陋寡闻),幸好有google才知道XML-RPC原来是这个样子:

What’s XML-RPC?
It's a spec and a set of implementations that allow software running on disparate operating systems, 
running in different environments to make procedure calls over the Internet.
It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, 
while allowing complex data structures to be transmitted, processed and returned.
登录后复制


简单的说就是使用了HTTP作为传输协议、XML作为数据内容实现了远程方法调用的一个标准(和WebService非常象)。具体可以参见XML-PRC的标准 http://www.xmlrpc.com/ 在这里我就不多说了。

既然是标准那就一定会有人实现了,到 http://sourceforge.net/ 找了一下果然如此,但是遗憾的是没有.Net的实现,还是看看dudu的实现吧。在duduAPI中发现了这个CookComputing.XmlRpc   .NET CLR 1.1.4322,哈哈应该是他了。Google我太爱你了,是你帮助了我找到了 http://www.cookcomputing.com/blog/index.html ,呵呵原来是cookcomuting.Net下实现了XML-PRC,让我来体验一下XML-PRC

下载源代码后,运行里面的Math这个SampleVery Cool使用这个Liberry非常简单,感觉比Remoting还要简单,遗憾的是现在的版本由于.Net Framework的原因现在只支持Framework 1.1不支持Framework 2.0,在说明中会在以后版本支持 Framework 2.0

哈哈,大家赶快去体验吧。

体验之后发现XML-PRC.Net客户端实现代理模式挺有意思,决定研究一下。打开源代码发现使用的是动态创建Assembly的技术,也就是该技术导致了不支持Framework2.0的原故。

 
   从上面的图(画的不好请见谅)看出客户端通过
XmlRpcProxyGenCreate方法创建了一个实现YourInterface的类,同时继承XmlRpcClientProtocol,在这里使用了AssemblyBuilder具体可以查看MSDN。然后把YourInterface的方法全部由XmlRpcClientProtocol的一个Invoke的方法代理,该函数的签名如下:

public object Invoke(string MethodName,params object[]Parameters)
登录后复制

哈哈,这回终于找到关键所在了,在Invoke方法里面就可以按照XML-RPC的标准通过WebRequest对象调用远程的方法了。

以上就是XML-RPC体验详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号