【发布时间】:2012-03-18 02:39:01
【问题描述】:
我有以下代码...
<?php
include("lib/xmlrpc.inc");
$email='whatever@hotmail.com';
$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 />";
}
?>
我需要使用位于 http://ws.myserver.com/register/index.php 的 WebService。
我将电子邮件作为参数传递,然后 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 代码中调用 existsEmail 方法感到疯狂……我确定它在那里,但我不知道我是否遗漏了什么……
【问题讨论】:
标签: php web-services xml-rpc xmlrpclib xmlrpcclient