XMLRPC - Python服务器,PHP客户端。不一致?

1 投票
1 回答
835 浏览
提问于 2025-04-16 10:06

我现在正在尝试为一组运行特定服务的Linux服务器构建一个基于网页的管理界面。我的想法是,这个管理网站可以通过远程过程调用(RPC)来获取集群的信息、执行配置任务等等。

我已经搭建了一个运行中的XMLRPC Python服务器脚本,并且用PHP写了一个基本的XMLRPC客户端。整体上都能正常工作,但我在获取方法调用的一致响应时遇到了一些严重的问题——有时候我得到的是一个深度不一的XML数组,这取决于我运行的命令输出的详细程度;有时候是一个XML结构;还有时候只是一个普通的值。此外,我还得处理错误——看起来XMLRPC标准有一个故障结构,里面有'faultCode'和'faultString'的值,这很好,因为这样我可以通过XML中的命名键提取这些数据。但只有当错误来自于命令行本身时(比如调用的命令有错误的参数),你才能得到这个结构,而来自命令的错误则必须是一个普通的XML响应。

我该如何围绕这些看似多变的XMLRPC服务器回复来编写一个稳健的网络服务呢?我真正想要的是每次都能得到完全相同的XML结构回复,并且有相同的键(returnCode(0=成功,>1=错误),returnValue/s)。

感谢任何建议。

1 个回答

1

你可以先从一个现成的XML/RPC客户端开始,这样客户端就可以帮你处理协议的复杂部分。比如在Zend框架里有一个叫Zend\XmlRpc的工具,另外还有一些独立的客户端,比如fxmlrpc

撰写回答