2012-06-12 1 views
0

Я запускаю это на сервере, используя реализацию XMLRPC для PHP для Joomla. Независимо от того, что xmlrpcval пытаюсь отправить (в том числе null), не отправляется. Вместо этого отправляется пустой массив.XML-RPC PHP отправляет пустой массив

Релевантный мастер-код. Я пробовал разные сорта xmlrpcmsg отправленного (от сложного массива простой строки):

$articleData = new xmlrpcmsg("insertContent", array(new xmlrpcval($articleArray, "struct"))); 
$client = new xmlrpc_client("/administrator/components/com_quickagencyslave/remote/easyblog.php", $clientArray["url"]); 
$response = $client->send($articleData); 

Подчиненный код (не фактическая функциональность, просто пытается заставить его работать:

function insertContent($params){   
    $data = $params->getParam(0); 
    $result = gettype($data); 

    return new xmlrpcresp(new xmlrpcval($result)); 
} 

Вернуться коды показывают, что $data имеет тип NULL. что я делаю неправильно?

ответ

1

Как оказалось XMLRPC очень строго о том, что данные, которые он будет принимать (то, что не полностью отражено в docs). массив может» t conta в простых объектах, даже если этот массив был преобразован в объект XMLRPC. Приведенный ниже код обертывает массив и все в нем в структуру XMLRPC:

//Takes an array containing strings, returns an xmlrpc array of xmlrpcvals 
function xmlrpcpack($input){ 
    if(is_array($input)){ 
     $return = array(); 
     foreach($input as $item){ 
      if(gettype($item) === "array") 
       $return[] = xmlrpcpack($item); 
      else 
       $return[] = new xmlrpcval($item); 
     } 
     return new xmlrpcval($return, "array"); 
    }else{ 
     debug_print_backtrace(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^