Вот кое что из описания сервиса к которому пишу клиента.
Принимаемые параметры Метод Login
Параметр
UserName (класс Customer)
Password (класс Customer)
Получаемые параметры Метод Login
CustomerId (класс Customer)
MainCustomerId (класс Customer)
SOAP Request :
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Login xmlns="http://emexonline.com:3000/maxima"> <Customer> <UserName>ZZZZZZ</UserName> <Password>123456</Password> </Customer> </Login> </soap:Body> </soap:Envelope>
SOAP Response :
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <LoginResponse xmlns="http://emexonline.com:3000/maxima"> <LoginResult <UserName>ZZZZZZ</UserName> <Password>123456</Password> <MainCustomerId>XXXX</MainCustomerId> <CustomerId>X</CustomerId> </LoginResult> </LoginResponse> </soap:Body> </soap:Envelope>oap:Envelope>
Собственно вопрос вот в чем, как с использованием SOPA::Lite Получить данные и передать и метод и класс и параметры так что бы их сервер ответил корректно.
вот мой код
use SOAP::Lite; my $s = SOAP::Lite -> uri('http://emexonline.com:3000/maxima/Login') -> outputxml(1) -> on_debug(sub{print@_}) # show you request/response with headers -> proxy('http://emexonline.com:3000/maxima/service.asmx'); my $query=SOAP::Data->name('Customer')->value( SOAP::Data->name(UserName=>'XXXXXX'), SOAP::Data->name(Password=>'XXXXXX') ); my $res=$s->Login($query); my @res = $res->paramsout; print "Result is $res, outparams are @res\n";
Не могли бы подсказать где ошибся, а то такое ощущение, что покругу хожу.