首頁  >  文章  >  後端開發  >  XML-RPC體驗詳解

XML-RPC體驗詳解

黄舟
黄舟原創
2017-03-16 16:53:402202瀏覽

今天上園子發現園子已經支援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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn