我正在寻找一种简单的方式通过Python编程来调用SOAP/RPC。就像这样:
method_to_invoke, args = parse_user_input()
outbound_xml = library.call_remote_method(method_to_invoke, args)
result = requests.post(... data=outbound_xml)
我知道有几个支持SOAP/RPC调用的Python库;但是它们都会进行一些“魔法”,并允许像这样的事情:
result = client.service.getPercentBodyFat('jeff', 68, 170)
(前面的例子来自 suds文档 ,但基本原理相同)。这假设我预先知道方法的名称,无法在运行时确定。
寻找解决方案时,它们要么不再维护,要么试图做太多“魔术”。例如,请参见这个过于复杂的解决方案或此解决方案,基本上是“构建自己的XML并发送它”。
是否有任何库可以为我构建“出站”XML,而无需通过各种困难?我已经有一个HTTP服务器,它将接收入站RPC,并希望使用requests
来正确处理诸如SSL证书验证之类的事情。