问题标签 [xmlrpclib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
6209 浏览

python - 在 python 中使用 **kwargs 和 SimpleXMLRPCServer

我有一个类,我希望使用 pythons SimpleXMLRPCServer 将其公开为远程服务。服务器启动如下所示:

然后我有一个如下所示的 ServiceRemote 类:

因此,对 ServiceRemote 对象的所有调用都将转发到 xmlrpclib.Server,然后再将其转发到远程服务器。问题是服务中采用命名可变参数的方法:

@useDb 装饰器包装函数,在调用之前创建数据库并打开它,然后在调用完成后关闭它,然后返回结果。

当我调用此方法时,我收到错误“ call () got an unexpected keyword argument 'name'”。那么,是否可以远程调用采用变量命名参数的方法?或者我是否必须为我需要的每个方法变体创建一个覆盖。


感谢您的回复。我稍微改变了我的代码,所以这个问题不再是问题。但是,如果我确实需要实现位置参数并支持远程调用,现在我知道这一点以供将来参考。我认为 Thomas 和 praptaks 方法的结合会很好。通过 xmlrpclient 将 kwargs 转换为客户端上的位置参数,并在服务器端的方法上有一个包装器来解包位置参数。

0 投票
1 回答
728 浏览

python - 如何使用 xmlrpclib 将 client_address 公开给所有方法?

我创建了一个小的 SimpleXMLRPCServer 来检查客户端的 ip。

我试试这个:

服务器

导入 xmlrpclib

从 SimpleXMLRPCServer 导入 SimpleXMLRPCServer

服务器 = SimpleXMLRPCServer(("localhost", 8000))

def MyIp(): return "Your ip is: %s" % server.socket.getpeername()

server.register_function(MyIp)

server.serve_forever()

客户

导入 xmlrpclib

se = xmlrpclib.Server(" http://localhost:8000 ")

打印 se.MyIp()

错误

xmlrpclib.Fault: :(107, '传输端点未连接')">

如何使所有功能都可以看到 client_address?

0 投票
1 回答
1475 浏览

python - Python XMLRPC:在客户端处理任意异常

我正在尝试将任意异常从 XMLRPC 服务器传递到客户端(两个 Python 脚本,异常类型都在两侧定义)。ActiveState Recipes中有一个示例性的客户端实现,它解析返回的“faultString”,将其与已知异常列表进行比较,如果找到,则引发该异常(而不是将其包装在xmlrpclib.Fault.

XMLRPC 异常响应示例:

ActiveState 配方拆分“ValueError:”字符串并将“ValueError”与ValueError.__name__(在 中allowed_errors = [ValueError, TypeError],参见上面的链接)进行比较。

是否可以像这样传递所有异常,即在客户端(在服务器上引发之后)自动引发任何异常(从Exception或其他基类派生)?

ActiveState 脚本有效,但我不想注册可能引发的每一个异常(必须在 中allowed_errors)。

(额外的问题:除了 XMLRPC 之外还有其他技术可以正确处理这个问题吗?Pyro?)

0 投票
5 回答
7392 浏览

python - xmlrpclib 客户端请求超时

我正在使用 Python 的 xmlrpclib 向 xml-rpc 服务发出请求。

有没有办法设置客户端超时,所以当服务器不可用时我的请求不会永远挂起?

我知道我可以使用 全局设置套接字超时socket.setdefaulttimeout(),但这并不可取。

0 投票
2 回答
1886 浏览

python - 从 Python 脚本中调用 Python 交互式解释器

有没有办法从脚本中启动 Python 解释器,其方式类似于仅使用python -i以便保留当前脚本中的对象/命名空间等?不使用的原因是脚本初始化了与 XML-RPC 服务器的连接,如果出现错误python -i,我需要能够停止整个程序。在有有效输入之前我不能循环,因为显然我不能做这样的事情:

因为:

不幸的是,python -i在它打印出回溯后立即启动解释器,所以我不得不从脚本中调用交互式解释器 - 替换脚本的执行以保持服务器连接

0 投票
2 回答
228 浏览

python - XML-RPC 通常允许一次调用几个函数吗?

我可以在一篇关于 XML-RPC 服务器的帖子中问几个问题吗?如果是,我该如何在 python 和 xmlrpclib 中做到这一点?

我在慢速连接上使用 XML-RPC 服务器,所以我想一次调用几个函数,因为每次调用花费我 700 毫秒。

0 投票
1 回答
1387 浏览

c# - C# 中的 IronPython:没有名为 xmlrpclib 的模块

我正在尝试使用 IronPython 的交互式控制台构建一个 Web 应用程序。当我尝试在 IronPython 的普通控制台中导入 xmlrpclib 时,它可以工作。但是,如果我在 C# 代码中使用 IronPython,它会引发异常“没有名为 xmlrpclib 的模块”。这是一个已知的问题?有什么解决方案可以解决这个问题?

这是代码:

0 投票
1 回答
2117 浏览

python - 将 gevent 与 python xmlrpclib 一起使用

是否可以将 python 的标准库 xmlrpclib 与 gevent 一起使用?目前我正在尝试使用 monkey.patch_all(),但没有成功。

urllib2.urlopen 正在阻塞服务器。在我看来,monkey.patch_all 没有修补套接字,这就是它阻塞的原因。

0 投票
1 回答
169 浏览

ruby-on-rails - Rails 应用程序界面架构设计

我有一个 Rails 应用程序,用作数据混合的接口。我需要的大部分信息都是从使用 XML-RPC 的命令行程序中检索到的。除此之外,我需要一些额外的数据,我别无选择,只能存储在数据库中。出于这个原因,我很难弄清楚设计应用程序的最佳方法是什么。

我已经重写了self.all并且self.find(id)它们依赖于对对象的调用super,然后通过将其实例变量定义为使用 XML-RPC 从程序中检索到的适当数据来“丰富”该对象。

不过,这一切似乎都很令人费解。例如,我想我已经失去了使用魔法探测器 ( find_by_x) 的能力,我不知道是否会因此而破坏其他任何东西。

我的问题是,是否有一种更合乎逻辑和更明智的方式来做这件事。也就是说,设计一个应用程序,它的数据大部分依赖于 XML-RPC,但也有一些数据存储在数据库中。

我确实读过关于after_find. 使用这个回调,我可以实现“对象丰富”过程,并让它在找到记录的任何时候运行。但是,我检索与项目关联的数据的方法与检索所有项目数据的方法不同。我检索所有项目数据self.all方式(如果有一种方法可以使回调不适用于调用,这将很有效。self.findself.all

0 投票
1 回答
970 浏览

python - 使用 python ping Pingomatic (XMLRPC) 时出错

我正在尝试使用 python ping Pingomatic。

我写了这个:

但是当我跑步时,我得到:

我怎样才能解决这个问题?

谢谢你。