XMLRPC 显示 -32601 错误(使用 PHP)

2023-12-02

我有以下代码...

<?php
include("lib/xmlrpc.inc");

$email='[email protected]';

$c=new xmlrpc_client("/register/index.php", "ws.myserver.com", 80);
$f=new xmlrpcmsg('existsEmail', array(new xmlrpcval($email, "base64")));
print "<pre>" . htmlentities($f->serialize( )) . "</pre>";

$r=$c->send($f);
$v=$r->value( );

if (!$r->faultCode( )) {
    print "Email is". $email . " is " .
          $v->scalarval( ) . "<br />";
          print "<hr />I got this value back<br /><pre>" .
          htmlentities($r->serialize( )). "</pre><hr />\n";
} else {
    print "Fault: ";
    print "Code: " . $r->faultCode( ) .
    " Reason '" .$r->faultString( )."'<br />";
}

?>

我需要使用位于的 WebServicehttp://ws.myserver.com/register/index.php.

我将电子邮件作为参数传递,然后 XMLRPC.inc 库将使用 base64 对其进行编码。

我有一个很好的 XML 请求,如下所示:

<?xml version="1.0"?>
<methodCall>
<methodName>existsEmail</methodName>
<params>
<param>
<value><base64>dnJvZHJpZ3VlekBpY2NrLm5ldC5jbw==</base64></value>
</param>
</params>
</methodCall>

BUUUT,当我尝试从服务器获取响应时,出现以下错误

Fault: Code: -32601 Reason 'server error. requested method not found'

有任何想法吗?我对如何打电话感到疯狂存在电子邮件我的 PHP 代码中的方法...我确定它在那里,但我不知道我是否遗漏了一些东西..


您正在得到一个错误消息(故障代码互操作性规范,版本 20010516)来自您正在通信的 XMLRPC 端点。

这是一个定义的错误代码:

-32601 ---> server error. requested method not found

服务器未找到您请求的 RPC 方法。请联系您所使用的服务的支持人员以获取所有可用方法的列表。如果该方法可用,请联系支持人员并与他们讨论该问题。

您在评论中询问:

有没有办法验证哪些方法可用?

这取决于服务。 sourceforge 上的 XMLRPC 有一个已定义方法的建议,您可以调用它来列出有关可用函数的信息:

XML-RPC 自省

  • system.listMethods
  • system.methodSignature
  • system.methodHelp

您可以尝试一下它是否也适用于您的服务。据我所知,这些很常见,我总结了一个简单的示例,您可以在下面找到完整的代码。另请参阅代码下方的输出。

$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)

您可以在这里找到源代码:XMLRPC 发现服务

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XMLRPC 显示 -32601 错误(使用 PHP) 的相关文章

随机推荐

  • Bootstrap 自定义下载中的颜色?

    所以我使用 Bootstrap自定义和下载页面生成具有自定义颜色的 Bootstrap 文件版本 我的想法是我想添加一些其他颜色 例如 purpleLight 以使网站设计的维护更容易 所以我查看了网站生成的下载内容 并且我的自定义似乎不在
  • DocumentDB - 删除导致 401 错误

    当我尝试对 DocumentDB 集合执行 DELETE 动词时 我总是收到 401 错误 用于查询 插入 更新的 POST 工作正常 因此我确信计算授权令牌的代码是正确的 但我不确定应该为资源 id 和资源类型传递什么 payLoad L
  • 检查 firebase 数据库中是否存在值

    firebase中有没有一种方法可以检查数据库中是否存在值 Firebase有方法 exists 但根据文档它只检查密钥 我有以下结构 users KKUmYgLYREWCnWeHCvO fName Peter ID U1EL9SSUQ u
  • 在 R 中读取键值文件

    有没有办法在 R 中读取简单的文本键值文件 Key1 Value1 Key2 Value2 Key3 Value3 理想情况下 我想像这样访问数据 myfile Key1 应返回 Value1 myfile Key2 应返回 Value2等
  • WP8:无法使用本机组件

    Windows Phone 8 C 项目 MyApp 从 WP7 1 迁移 我添加了一个本机 Windows 运行时组件库 AppLib 到解决方案 创建了一个参考 有一个公共密封的参考类 MyClass 在里面 C 代码中有对它的引用 在
  • Python strptime 芬兰语

    我有一个日期的芬兰表示 蒂斯塔纳 27 lokakuuta 2015 我需要将其转换为日期时间对象 但是 Python 中的日期时间库无法识别日期和月份名称 我希望像下面这样的东西能够工作 import locale from dateti
  • 是否可以拦截应用程序卸载?

    是否可以拦截应用程序卸载并进行一些工作 例如 我的应用程序修改了设备的一些文件 因此在卸载我的应用程序所做的回滚更改之前会很整洁 有什么提示 想法吗 你在谈论类似的问题吗 应用程序卸载前收听广播 然后如上所述 您必须使用上面链接中给出的意图
  • 通过 PIP 安装 pyautogui 时获取“encoding”是此函数的无效关键字参数”

    当我尝试将 pyautogui 库安装到 python 时 出现此错误 请在下面找到详细信息 ERROR Complete output from command python setup py egg info ERROR Traceba
  • pandas - 按部分字符串分组

    我想按部分子字符串对 DataFrame 进行分组 这是一个示例 csv 文件 GridCode Key 1000 Colour 1000 Colours 1001 Behaviours 1001 Behaviour 1002 Favour
  • selenium webdriver C# 多线程

    Selenium WebDriver 支持多线程吗 我尝试在打开 2 4 个窗口的情况下使用它 看起来浏览器窗口 Firefox 有时会被冻结 当一个线程启动时 driver FindElement By Id id SendKeys My
  • Django 复杂注释

    先决条件 查询集必须返回Articles 查询集必须返回唯一的对象 不得使用访问数据库的 for 循环 意味着对要注释的 N 个对象进行 N 个查询 我的模型 class Report BaseModel ios report JSONFi
  • 是否可以在 Node.js 上使用 UDP 来保证消息的传递?

    如何在 Node js 上使用 UDP 保证消息的传递 例如 如果数据包失败 我可以重新发送数据包 但有没有办法识别它何时失败 另外 数据包丢失有多常见 如果您真正想知道的是 如何检测丢失的数据包 那么一般的技术是让接收方对发送的每个数据包
  • ng-options 在另一个下拉列表中按值过滤

    这似乎是一个非常简单的代码 但我无法弄清楚为什么它不起作用 我想按所选的 品牌 过滤 型号 下拉列表 Make
  • 如何在 webview 组件中检索 Javascript 函数值

    如何从 webview 组件中加载的网页中检索 Javascript 函数值 你不能直接 您可以通过以下方式调用 Javascript 函数loadUrl javascript where 是你的函数调用 但是 您无法通过这种方式得到结果
  • 从 API 网关调用时,Cloudwatch Logs PutLogEvents 操作失败,并出现 com.amazon.coral.service#UnknownOperationException

    我使用 API Gateway 的 AWS 服务集成类型通过 PutLogEvents 操作将日志添加到 Cloudwatch Logs 服务 如下所述 https docs aws amazon com AmazonCloudWatchL
  • 为什么在将临时变量传递给线程函数时移动构造函数会被调用两次? [复制]

    这个问题在这里已经有答案了 在下面的代码中 我无法理解为什么类的移动构造函数被调用两次 因为我的线程函数通过右值引用获取参数 所以我希望当参数移动到线程构造函数时 移动构造函数只会被调用一次 有人可以给出关于线程构造函数如何工作以及如何将参
  • linux 杀死命令 -9 与 -15

    我有一个进程想要终止然后重新启动服务 有人编写了通过编写以下脚本集来终止进程的代码 ps ef grep process name awk print kill 15 2 gt projects test kill sh run the k
  • 控制守护进程和应用程序的差异

    关于这篇优秀的文章 nohup 和守护进程有什么区别 我想问以下问题 从我的终端启动应用程序后 该应用程序会在后台或前台继续运行 我唯一能与之交互的就是从我的终端向其发送信号 假设标准输入仍然存在 然而 在启动守护进程后 我意识到可以通过其
  • 使用 shape-outside 包裹图像时如何将图像与文本底部对齐

    我一直在玩弄 shape outside 并在这里工作了一个示例 http www thelionscall com wp content Temp wrap test html element shape outside url http
  • XMLRPC 显示 -32601 错误(使用 PHP)

    我有以下代码