问题标签 [simplexmlrpcserver]

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 投票
3 回答
4491 浏览

python - 在单独的线程中运行 SimpleXMLRPCServer 并关闭

我有一个类,我希望通过 python 中的 SimpleXMLRPCServer 进行测试。我设置单元测试的方式是创建一个新线程,并在其中启动 SimpleXMLRPCServer。然后我运行了所有的测试,最后关机了。

这是我的服务器线程:

问题是,调用 ServerThread.stop(),然后调用 Thread.stop() 和 Thread.join() 不会导致线程正确停止,如果它已经在等待 handle_request 中的请求。而且由于这里似乎没有我可以使用的任何中断或超时机制,我不知道如何干净地关闭服务器线程。

0 投票
2 回答
739 浏览

python - Sending an exception on the SimpleXMLRPCServer

I'm trying to raise an exception on the Server Side of an SimpleXMLRPCServer; however, all attempts get a "Fault 1" exception on the client side.

RPC_Server.AbortTest() File "C:\Python25\lib\xmlrpclib.py", line 1147, in call return self.__send(self.__name, args) File "C:\Python25\lib\xmlrpclib.py", line 1437, in __request verbose=self.__verbose File "C:\Python25\lib\xmlrpclib.py", line 1201, in request return self._parse_response(h.getfile(), sock) File "C:\Python25\lib\xmlrpclib.py", line 1340, in _parse_response return u.close() File "C:\Python25\lib\xmlrpclib.py", line 787, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: :Test Aborted by a RPC request">

0 投票
1 回答
764 浏览

python - SimpleXMLRPCServer 可以监听多个地址吗?

我有两个 IP 映射到机器,我想知道如何让一个 python xmlrpc 服务器监听两个 IP(相同的端口),就像你可以用 Apache 做的那样。

谢谢,

0 投票
3 回答
5249 浏览

python - Python SimpleXMLRPCServer中客户端的IP地址?

我有一个SimpleXMLRPCServer服务器(Python)。

如何在请求处理程序中获取客户端的 IP 地址?

此信息出现在日志中。但是,我不确定如何从请求处理程序中访问此信息。

0 投票
2 回答
2087 浏览

python - SimpleXMLRPCServer、wxPython 和 Thread - 如何停止?

这是一个说明我的问题的示例程序。该程序启动一个 wxPython 应用程序并在一个线程中启动一个 SimpleXMLRPCServer。这一切都很好。我的问题是我无法关闭 SimpleXMLRPCServer 线程,因为它在 handle_request() 调用中被阻塞。我在 Windows XP 机器上开发(不知道在 linux 上会不会出现同样的问题)。

从我的在线研究中,我可以看到杀死线程是一个麻烦的问题。

看来我的选择是扭曲或处理模块......还有其他解决方案吗?

这是一篇我认为非常有趣的帖子,尽管我认为它不会对我有帮助,因为我可能在套接字而不是 python 中被阻塞: http ://www.velocityreviews.com/forums/t330554-kill- a-thread-in-python.html

0 投票
3 回答
1702 浏览

java - 如何使用 Python 服务器调试 Apache XML-RPC 客户端

我正在编写 xmlrpc 代码以在 Apache XML-RPC 客户端和 Python SimpleXMLRPCServer 之间进行通信。我很难调试它,因为我找不到查看请求 XML/响应 XML 的方法。无论如何我可以看到它转储到控制台或登录文件吗?

0 投票
1 回答
1667 浏览

python - 什么可能导致 xmlrpclib.ResponseError: ResponseError()?

我正在试验 XML-RPC。

我有以下服务器脚本(Python):

和以下客户端脚本:

我在本地对此进行了测试,效果很好。它所做的一切都是从客户端脚本中吐出输入,这是正确的。

但是,当我尝试在远程服务器上执行此操作时,出现以下错误:

有什么想法可能导致这种情况吗?

更新:

什么时候verbose=True

0 投票
2 回答
437 浏览

python - SimpleXmlRpcServer _sock.rcv 在数千个请求后冻结

我正在通过 WAN 处理来自多个 XMLRPC 客户端的请求。这个东西非常适合,比如说,一天(有时是两天),然后在 socket.py 中冻结:

_sock.timeout 为 -1,_sock.gettimeout 为无

我在主线程中没有什么特别的(只是接收 XMLRPC 调用),还有另外两个线程与 DB 通信。这两个线程都工作正常并且在这个块中存活下来(用 WinPdb 进行了检查)。客户端发送的请求不超过 1KB,并且没有任何特殊内容:只是字典中漂亮而干净的字符串。在两次阻塞之间,我可以毫无问题地处理数万个请求。防火墙已关闭,同一台机器上没有奇怪的软件等...

我使用 Windows XP 和 Python 2.6.4。我检查了 2.6.4 之间的差异。和 2.6.5,并没有发现任何重要的东西(或者我弄错了吗?)。2.7 版本不是一个选项,因为我会错过 MySqlDB 的二进制文件。

由互联网连接不良的客户端不时发生的唯一事情是套接字中断。这种情况每 5-10 分钟发生一次(每 2 秒只有五个客户端访问服务器)。

我在这个问题上花了很多时间,现在我开始失去任何想法该做什么。任何提示或想法将不胜感激。

0 投票
3 回答
1407 浏览

python - 在 Python 中结合 SimpleXMLRPCServer 和 BaseHTTPRequestHandler

因为跨域 xmlrpc 请求在 JavaScript 中是不可能的,所以我需要创建一个 Python 应用程序,它通过 HTTP 公开一些 HTML 和同一域上的 XML-RPC 服务。

在 python 中创建 HTTP 请求处理程序和 SimpleXMLRPCServer 非常容易,但是它们都必须侦听不同的端口,这意味着不同的域。

有没有办法创建将侦听本地主机上的单个端口并公开 HTTPRequestHandler 和 XMLRPCRequest 处理程序的东西?

现在我有两种不同的服务:

更新

  • 我无法在设备上安装 Apache
  • 托管页面将是单个 html 页面
  • 唯一的客户端将是 python 服务自行运行的设备