在我的服务器上,我使用
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")]
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’).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。