Я пытаюсь понять, как конвертировать PHP SOAP-клиент в Groovy с помощью groovy-wslite. Код PHP, который у меня есть, выглядит следующим образом:
<?php define ('WSDL','https://….wsdl'); define ('EndPoint','https://…'); define ('URI','urn:ws.….com'); $client = new SoapClient(WSDL,array( 'location' => EndPoint, 'uri' => URI, 'trace' => TRUE, )); try { $user="…"; $pass="…"; //parameters passed as array $loginResult = $client->login(array("username"=>"$user", "password"=>"$pass")); //session ID and jsession returned from this call print "<br>Logging In: Success!. <br>"; print "<br>The session id is {$loginResult->result->sessionId}<br>"; } catch (SoapFault $err) { print "failed!\n"; print "Login Error: ".$err->faultString."\n"; $loggedIN = false; } ?>
Вот пример примерного кода (который работает), который я пытаюсь вставить в мой код.
@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='0.8.0') import wslite.soap.* def client = new SOAPClient('http://www.holidaywebservice.com/Holidays/US/Dates/USHolidayDates.asmx') def response = client.send(SOAPAction:'http://www.27seconds.com/Holidays/US/Dates/GetMothersDay') { body { GetMothersDay('xmlns':'http://www.27seconds.com/Holidays/US/Dates/') { year(2011) } } }
Вот код, который я начал, когда я попытался объединить два
@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='0.8.0') import wslite.soap.* def client = new SOAPClient('<EndPoint>') def response = client.send(SOAPAction:'login') { body { login('xmlns':'[what do I put here]') { username("<user>"), password("<pass>") } } }
Поэтому я думаю, что я заменяю SOAPClient своим EndPoint, но я как бы теряю его, когда попадаю в SOAPAction и часть тела кода Groovy.
Может ли кто-нибудь помочь мне преобразовать PHP-код в эквивалент Groovy-wslite?