您从与之通信的 XMLRPC 端点收到错误消息(故障代码互操作性规范,版本 20010516) 。
It is a defined error code:
-32601 ---> server error. requested method not found
The RPC method you requested was not found by the server. Contact the support of the service you consume to get a list of all available methods. If that method should be available, contact the support and discuss the issue with them.
You asked in comment:
Is there any way [to] verify which methods are available?
That depends on the service. XMLRPC on sourceforge has a suggestion of defined methods you can call to list information about the functions available:
XML-RPC Introspection
system.listMethods
system.methodSignature
system.methodHelp
You can try if it works with your service, too. AFAIK those are common, I wrapped up a quick example, you find the full code below. See the output below the code as well.
$path = 'http://xmlrpc-c.sourceforge.net/api/sample.php';
printf("\n XMLRPC Service Discovery\n\n for: '%s'\n\n", $path);
$discovery = new Discovery($path);
$methods = $discovery->getMethods();
printf(" Method Summary:\n ===============\n", count($methods));
foreach ($methods as $i => $method)
{
printf(" %'.-2d %s\n", $i + 1, $method->getName());
}
printf("\n Method Details (%d):\n ===================\n", count($methods));
foreach ($methods as $i => $method)
{
printf(" %'.-2d %s\n", $i + 1, $method->getName());
printf("\n %s\n", $method);
printf("\n%s\n\n", preg_replace('/^/um', ' ', wordwrap($method->getHelp(), 46)));
}
Output:
XMLRPC Service Discovery
for: 'http://xmlrpc-c.sourceforge.net/api/sample.php'
Method Summary:
===============
1. debug.authInfo
2. sample.add
3. sample.sumAndDifference
4. system.listMethods
5. system.methodHelp
6. system.methodSignature
Method Details (6):
===================
1. debug.authInfo
<struct> debug.authInfo
Report any HTTP authentication in use
2. sample.add
<int> sample.add (<int>, <int>)
Add two numbers
3. sample.sumAndDifference
<struct> sample.sumAndDifference (<int>, <int>)
Add and subtract two numbers
4. system.listMethods
<array> system.listMethods (<string>)
This method lists all the methods that the
XML-RPC server knows how to dispatch
5. system.methodHelp
<string> system.methodHelp (<string>)
Returns help text if defined for the method
passed, otherwise returns an empty string
6. system.methodSignature
<array> system.methodSignature (<string>)
Returns an array of known signatures (an array
of arrays) for the method name passed. If no
signatures are known, returns a none-array
(test for type != array to detect missing
signature)
You can find the sourcecode here: XMLRPC Discovery Service