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


calling a second method from within a xmlrpc request

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

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

结构PCLAnswerUnit如下所示:

Members
integer | QuestionID
string  | Answer 

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

我的请求(使用 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"数组时,它再次失败。

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

你可能把它混在某个地方。返回类型首先是三个参数。