gpt4 book ai didi

c# - XML-RPC C# 和 Python RPC 服务器

转载 作者:太空狗 更新时间:2023-10-30 01:10:37 28 4
gpt4 key购买 nike

在我的服务器上,我使用的是 Python 的标准示例(带有一个额外的 Hello World 方法),而在客户端,我使用的是 C# 中的 XML-RPC.NET 库。但是每次我运行我的客户端时,我都会遇到找不到该方法的异常。任何想法如何解决这个问题。

谢谢!

python :

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("", 8000),
requestHandler=RequestHandler)
server.register_introspection_functions()

# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)

# Register a function under a different name
def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')

def HelloWorld():
return "Hello Henrik"

server.register_function(HelloWorld,'HelloWorld')

# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
class MyFuncs:
def div(self, x, y):
return x // y

server.register_instance(MyFuncs())

# Run the server's main loop
server.serve_forever()

C#

namespace XMLRPC_Test
{
[XmlRpcUrl("http://188.40.xxx.xxx:8000")]
public interface HelloWorld : IXmlRpcProxy
{
[XmlRpcMethod]
String HelloWorld();
}
[XmlRpcUrl("http://188.40.xxx.xxx:8000")]
public interface add : IXmlRpcProxy
{
[XmlRpcMethod]
int add(int x, int y);
}
[XmlRpcUrl("http://188.40.xxx.xxx:8000")]
public interface listMethods : IXmlRpcProxy
{
[XmlRpcMethod("system.listMethods")]
String listMethods();
}

class Program
{
static void Main(string[] args)
{
listMethods proxy = XmlRpcProxyGen.Create<listMethods>();
Console.WriteLine(proxy.listMethods());
Console.ReadLine();
}
}
}

最佳答案

如果你把声明改成这样能行吗?

[XmlRpcUrl("http://188.40.xxx.xxx:8000/RPC2")]

来自Python docs :

SimpleXMLRPCRequestHandler.rpc_paths

An attribute value that must be a tuple listing valid path portions of the URL for receiving XML-RPC requests. Requests posted to other paths will result in a 404 “no such page” HTTP error. If this tuple is empty, all paths will be considered valid. The default value is ('/', '/RPC2').

关于c# - XML-RPC C# 和 Python RPC 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com