![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Na stronie: http://phpxmlrpc.sourceforge.net/ dostepna jest klasa do webservices z wykorzystaniem RPC.
I wszytko bylo by ladnie i pieknie gdyby nie pewien blad (?). Mamy taki testowy kod. Klient: [php:1:d1a0c06c8c]<html> <head> <title>test</title> </head> <body> <?php require_once( 'rpc/xmlrpc.class.php' ); $blnDebugOn = true; // Wlaczenie/wylaczenie debugowania $rpcClient = new xmlrpc_client( '/webserv/server.php', 'localhost', 80 ); //$rpcClient->setCredentials( 'test', 'dupa' ); // Autoryzacja $rpcClient->setDebug( $blnDebugOn ); // Debugowanie $myVal = new xmlrpcval(); $myVal->addScalar( 'TestRPC' ); // Tworzenie wartosci $rpcMsg = new xmlrpcmsg( 'test.testrpc', array( $myVal ) ); // Wiadomosc dla servicu $rpcResponse = $rpcClient->send( $rpcMsg, 3, 'http' ); // Wysylanie wiadomosci if ( !$rpcResponse->faultCode() ) // Sprawdzanie poprawnosci wyniku { // $arrValResponse = xmlrpc_decode( $rpcResponse ); // print "Wynik: ".$arrValResponse['Wynik']; } else { print 'Blad <br />'; print "Numer: ".$rpcResponse->faultCode(). "<br />Wiadomosc: ".$rpcResponse->faultString()."<br />"; } ?> </body> </html>[/php:1:d1a0c06c8c] ...i serwer: [php:1:d1a0c06c8c]<?php require_once( 'rpc/xmlrpc.class.php' ); require_once( 'rpc/xmlrpcs.class.php' ); $myDispMap = array( 'test.testrpc' => array( 'function' => 'testrpc', 'signature' => array( array( $xmlrpcString, $xmlrpcString ) ), 'docstring' => 'Testowa server rpc' ) ); $rpcServer = new xmlrpc_server( $myDispMap ); //print_r( $rpcServer ); /* if ( $_SERVER['PHP_AUTH_USER'] == 'test' && $_SERVER['PHP_AUTH_PW'] == 'dupa' ) { // $rpcServer->service(); } else { } */ function testrpc( $params ) { global $xmlrpcerruser; $test = $params->getParam(0); if ( $test->scalarval() == 'TestRPC' ) { return new xmlrpcresp( new xmlrpcval( 'Wszystko OK', $xmlrpcString ) ); } else { return new xmlrpcresp( new xmlrpcval( 'Zla wartosc', $xmlrpcString ) ); } } ?>[/php:1:d1a0c06c8c] Problem polega na tym, ze ta czesc: Cytat ...
'signature' => array( array( $xmlrpcString, $xmlrpcString ) ), ... ...w zalozeniach powinna okreslac, ze przekazujemy dwa parametry (stringi), a tym czasem przekaujac dwa parametry wystepuje blad. Natomiast przy przeslaniu jednego jest wszystko wporzadku :/ Czy ktos moze spotkal sie juz z tym ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:16 |