0

我正在尝试锻炼如何在 python 中使用 org.apache.xmlrpc.client.XmlRpcClient。

我在https://github.com/mcasperson/vaultdemo/blob/master/src/main/java/com/redhat/ecs/App.java中使用代码:

final XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(args[0]));
config.setBasicUserName(args[1]);
config.setBasicPassword(args[2]);

final XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);

final Object[] params = new Object[] {"1376"};
final String retValue = (String) client.execute("ContentAPI.queryResult", params);

我正在尝试遵循 python 代码,但我没有得到任何地方:

from xmlrpclib import ServerProxy
s = ServerProxy(url)
print s.client.execute("ContentAPI.queryResult",1376)

如何将用户名和密码传递给 python 的 ServerProxy 客户端?

非常感谢您的帮助

4

1 回答 1

0

阅读您尝试使用的库的文档是个好主意。

这可能有效......可能:

import xmlrpclib

conn_settings = \
{
    "user" : "noob",
    "pass" : "1234",
    "host" : "localhost",
    "port" : 8080,
    "path" : ""
}

conn_str = "http://" + ("%(user)s:%(pass)s@" % conn_settings if(conn_settings.get("user", "")) else "") + "%(host)s:%(port)d%(path)s" % conn_settings
print "Connecting using: %s" % conn_str

client = xmlrpclib.ServerProxy(conn_str)

print "You can call this"
print client.system.listMethods()

print "Trying Query"
print client.ContentAPI.queryResult("1376")
于 2013-07-10T06:31:42.413 回答