У меня есть следующий код ...XMLRPC показывает -32601 ошибку (с помощью PHP)
<?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 />";
}
?>
мне нужно потреблять WebService, расположенный в http://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'
Любые идеи? Я схожу с ума от того, как вызвать метод existsEmail из моего кода PHP ... Я уверен, что он есть, но я не знаю, не хватает ли чего-то.
Благодаря hakre ... вы думаете, что я не в состоянии потреблять веб-сервиса, потому что что-то не хватает от них ? Я думаю, что все в порядке ..есть ли способ проверить, какие методы доступны? – Leo
@ Leo, я продлил ответ. Это может быть информация, которую вы ищете. – hakre
Привет, Hakre ... Я выяснил, что это неправильно. Мне не хватало префикса для метода, это должно быть «reg.existsEmail», а также значение «string» или «base64», потому что Webservice имеет возможность получить уже закодированная строка ... Во всяком случае, эта помощь от вас - УДИВИТЕЛЬНАЯ !!! Я буду использовать его для проверки некоторых других функций моего поставщика услуг WS – Leo