Maison >développement back-end >Tutoriel XML/RSS >Explication détaillée de l'expérience XML-RPC

Explication détaillée de l'expérience XML-RPC

黄舟
黄舟original
2017-03-16 16:53:402221parcourir

Je suis allé chez Yuanzi aujourd'hui et j'ai découvert que Yuanzi prend déjà en charge la fonction WebBlog de Office2007, donc je vérifié et utilisé la technologie 🎜>XML-RPC. Ouvrir le dudu XML-RPCPRC de l'API Cela ressemble à un WebService, mais si vous regardez plus profondément, il s'avère que ce n'est pas le cas. Ce n'est qu'à ce moment-là que vous avez remarqué que XML-PRC<.> fonctionne. Qu'est-ce que XML-RPC (ne vous moquez pas de moi parce que je suis ignorant Heureusement, je ne le connais qu'avec google). XML-RPCÇa s'avère être comme ça :

What’s XML-RPC?
It&#39;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&#39;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.


Pour faire simple, il utilise HTTP comme protocole de transmission et XML comme contenu de données pour implémenter l'invocation de méthode à distance. Un standard (très similaire à WebService). Pour plus de détails, veuillez vous référer à la norme XML-PRC http://www.xmlrpc.com/ Je ne dirai pas plus ici.

Comme il s'agit d'une norme, quelqu'un va certainement l'implémenter. Allez sur http://sourcepourge.net/ J'ai cherché et cela s'est avéré être le cas, mais malheureusement il n'y a pas d'implémentation de .Net Jetons un coup d'œil à l'implémentation de dudu. J'ai trouvé ça dans l'API de dudu, haha, ça devrait être lui. GoogleJe t'aime tellement, tu m'as aidé à le trouver http://www.cookcomputing.com/blog/index.html , haha, il s'avère que cookcomuting est implémenté sous .NetXML-PRC . , laissez-moi en faire l'expérience 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对象调用远程的方法了。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn