Moodle LMS можно использовать для викторины студентов. Один необязательный тип вопроса (непрозрачный) использует SOAP для запроса вопросов из службы (код по адресу https://github.com/timhunt/moodle-qtype_opaque).
Существует рабочий сервер вопросов, реализованный в PHP с использованием WSDL, определенного в https://github.com/timhunt/moodle-local_testopaqueqe
Осложнение, с которым я сталкиваюсь, состоит в том, что код в типе вопроса ожидал, что некоторые возвращаемые значения являются строкой. Ответ с функционирующего тестового сервера выглядит как ... < /p>
<engineinfo>
< /code>
Примечание xsi: type = .. string. Данные фактически возвращаются в виде строки форматированной XML по приложению PHP: < /p>
/**
* A dummy implementation of the getEngineInfo method.
* @return string of XML.
*/
public function getEngineInfo() {
return '
< /code>
Я пытаюсь интерфейс это на сервер Python+SOAP. Я пытался использовать ZSI и Spyne. С ZSI я использовал WSDL, предоставленный с примером сервера для генерации заглушек кода. Соответствующий код просто возвращает строку, очень похожую на код PHP. Ответ от этого: < /p>
<engineinfo>
< /code>
Обратите внимание на отсутствие модификатора типа строки. Этот ответ получается кодом PHP в Moodle в качестве объекта, содержащего одно поле без имени, но содержащее возвращенную строку XML. Поскольку это объект, содержащий строку, а не просто строку, код не может правильно проанализировать результат.soap11env:Body>
<engineinfo>
< /code>
из этого кода: < /p>
@srpc(_returns=String, _body_style='wrapped',
_out_variable_name="getEngineInfoReturn"
)
def getEngineInfo():
resp = "\n"
< /code>
Это также возвращает объект с одним элементом (ныне названный GetEngineInforTurn), который содержит подходящую строку.
Однако приемник (который был доволен произведенным WSDL)
по -прежнему ожидает строки, а не объект, содержащий строку. < /p>
я, скорее, получаю версию Spyne, а не версия Spyne, а не версия Spyne, а не версия Spyne, а не версия Spyni, а не версия Spyni, а не версия Spyni, а не версия Spyni, а не версия Spyni. Я использовал SOAP раньше, но не уверен, делает ли код PHP необоснованное предположение о формате возврата или я должен иметь возможность затянуть Spyne, чтобы произвести этот формат. Читая исходный код для функции декоратора, я не думаю, что смогу. < /P>
Итак, это плохо кодированный клиент или ожидаемая схема мыла в норме? Как я могу заставить Spyne (или Zis) производить что -то подобное?
Подробнее здесь: https://stackoverflow.com/questions/358 ... -libraries
Совместимость между PHP SOAP и библиотеками Python SOAP ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Аутентификация в заголовке SOAP с использованием C# и пользовательского интерфейса SOAP.
Anonymous » » в форуме C# - 0 Ответы
- 42 Просмотры
-
Последнее сообщение Anonymous
-