我正在尝试在我的moodle webservice中构建正确的响应函数。 我打印了我的json响应的php结构:
[
{
"name":"Quiz",
"id":"1",
"theme":"green",
"quizzes":[
{
"type":"single-select-item",
"question":"Question example 1?",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"1"
},
{
"type":"single-select-item",
"question":"<p>Question example 1?<br><\/p>",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"2"
}
]
}
]
但是我无法为moodle webservices编写正确的返回函数。
我已经将返回功能写成如下
return new external_multiple_structure(
new external_single_structure(
array(
"name"=> new external_value(PARAM_TEXT, 'quiz name'),
"id"=> new external_value(PARAM_TEXT, 'quiz id'),
"theme"=> new external_value(PARAM_TEXT, 'quiz theme'),
"quizzes" => new external_multiple_structure(
new external_single_structure(
array(
"type" => new external_value(PARAM_TEXT, 'answer type'),
"question" => new external_value(PARAM_TEXT, 'question'),
"options" => new external_multiple_structure(
new external_value(PARAM_TEXT, 'options')
),
"answer" => new external_value(PARAM_TEXT, 'right answer')
)
)
)
)
)
);
但我仍然收到以下异常。我的回归功能有什么问题?
{“exception”:“invalid_response_exception”,“errorcode”:“invalidresponse”,“message”:“检测到无效的响应值”}
有什么建议吗? 谢谢
答案 0 :(得分:1)
我刚发现问题!! 返回函数是正确的,但我收到异常,因为结构中的某些文本包含HTML标记和转义字符,它们会破坏返回函数的组合。 最后我使用了这个PARAM_RAW而不是PARAM_TEXT,它就像一个魅力!