从xmlrpc请求中调用第二个方法

时间:2012-08-09 14:31:01

标签: php arrays xml-rpc

我有这个方法Answers,它使用这个结构:

struct PCLAnswersReq
Members
string                             | UserName
integer                            | SessionID
array of struct PCLAnswerUnit      | Answers 

结构PCLAnswerUnit看起来像:

Members
integer | QuestionID
string  | Answer 

所以PCLAnswersReq有用户名,sessionID和结构PCLAnswerUnit的数组,这很好,但我似乎无法弄清楚如何获得第二个结构。< / p>

我的请求(使用php xml-rpc)如下所示:

xmlrpc_encode_request('PCLAnswers',  array("UserName"=>$uname,"SessionID"=>$sesid,"Answers"=>xmlrpc_encode_request('PCLAnswerUnit',array("QuestionID"=>'',"Answer"=>$questions))));

这当然导致了错误:

"request contains string value where array expected [request : parameter 1 : struct mapped to type PCLAnswersReq : member Answers mapped to type PCLAnswerUnit[]]"

我尝试删除第二个xmlrpc请求,只是将Answers指向QuestionID和Answer数组,但这也不起作用。

任何指导都有帮助。

谢谢!

'更新'

当xml-rpc请求被修改为:

xmlrpc_encode_request('PCLAnswers',  array("UserName"=>$uname,"SessionID"=>$sesid,"Answers"=>array()));

它工作正常。然而,当我传递'$ questions'数组时,它再次失败。

1 个答案:

答案 0 :(得分:0)

服务器上输入法的签名应按以下顺序排列: return_type,xmlrpcString,xmlrpcString,xmlrpcArray

你可能把它混淆了。返回类型首先跟随您的三个参数。