Это процесс, который вам нужно пройти.
Во-первых, создать класс из WDSL определения:
url = 'http://www.webservicex.net/FedWire.asmx?WSDL';
className = createClassFromWsdl(url);
Это создаст директорию с именем @FedWire в текущем каталоге. Вы можете Dir этот каталог или использовать следующую команду, чтобы изучить услуги, которые Fedwire предлагает:
methods(FedWire)
Перед тем, как можно использовать веб-службы, создать экземпляр объекта Fedwire:
fw = FedWire;
classType = class(fw) % to confirm the class type.
Чтобы использовать услуги, например, GetParticipantByLocation, который требует Город и StateCode:
[Result, FedWireLists] = GetParticipantsByLocation(fw, 'New York', 'NY')
Результат должен быть верным и FedWireLists является глубоко вложенной структурой, содержащей RET данных urned.
Открытие @FedWire \ GetParticipantsByLocation.m показывает, как сгенерированный код MATLAB использует createSoapMessage и callSoapService. Если служба не поддерживает запросы WSDL, то использование этих низкоуровневых функций становится необходимым.
Параметры createSoapMessage заполняются так:
- NAMESPACE: 'http://www.webservicex.net/'
- МЕТОД: '' GetParticipantsByLocation
- ЗНАЧЕНИЯ: { 'Нью-Йорк ',' NY '}
- НАЗВАНИЯ: {' Город ',' StateCode '}
- ТИПЫ: {' {http://www.w3.org/2001/XMLSchema
- СТИЛЬ: 'документ'
и callSoapService:
- ENDPOINT: 'http://www.webservicex.net/FedWire.asmx'
- SOAPAction: «HTTP: // WWW. webservicex.net/GetParticipantsByLocation '
- СООБЩЕНИЕ: результат вызова createSoapMessage.
Следующий код делает тот же запрос с вызовами низкого уровня:
% createSoapMessage(NAMESPACE,METHOD,VALUES,NAMES,TYPES,STYLE) creates a SOAP message.
soapMessage = createSoapMessage(...
'http://www.webservicex.net/', ...
'GetParticipantsByLocation', ...
{'New York', 'NY'}, ...
{'City', 'StateCode'}, ...
{'{http://www.w3.org/2001/XMLSchema}string', ...
'{http://www.w3.org/2001/XMLSchema}string'}, ...
'document')
% callSoapService(ENDPOINT,SOAPACTION,MESSAGE) sends the MESSAGE,
response = callSoapService(...
'http://www.webservicex.net/FedWire.asmx', ...
'http://www.webservicex.net/GetParticipantsByLocation', ...
soapMessage);
%parseSoapResponse Convert the response from a SOAP server into MATLAB types.
[result, participants] = parseSoapResponse(response)
у меня было много проблем, заставляющей эти примеры работают, потому что я заглавной имя домена службы, как этот www.webserviceX.NET
который я взял из их примера XML. Когда я перешел на нижний регистр, это сработало.
Пример использования createClassFromWsdl
является адаптацией http://www.mathworks.co.uk/products/bioinfo/examples.html?file=/products/demos/shipping/bioinfo/connectkeggdemo.html
Это связано с моим вопросом http://stackoverflow.com/questions/11951661/what-is-wrong-with-the-way-i-am -Использование-мыло-в-этом-specic-Matlab-примера. –