Perl hardly know, SOAP is also so-so. Asked for help, we have to understand. I try this simplest code:

using strict; using SOAP; my $soap = SOAP::Lite->new(proxy => 'http://86.57.245.235/TimeTable/Service.asmx'); $soap->service('http://86.57.245.235/TimeTable/Service.asmx?WSDL'); $soap->ns('http://webservices.belavia.by/'); my $retval = $soap->GetAirportsList('RU'); 

to get data. WSDL lies here - http://86.57.245.235/TimeTable/Service.asmx?WSDL . The most crucial piece of WSDL is here:

 <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://webservices.belavia.by/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservices.belavia.by/"> ....... <wsdl:binding name="OnlineTimeTableSoap" type="tns:OnlineTimeTableSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="GetTimeTable">...</wsdl:operation> <wsdl:operation name="GetAirportsList"> <soap:operation soapAction="http://webservices.belavia.by/GetAirportsList" style="document"/> 

In the debugger, you can see that the WSDL scheme is loaded, the object and the necessary methods are visible in it, but the following error description comes in response:

 "Сервер не распознал значение заголовка HTTP SOAPAction:http://webservices.belavia.by/#GetAirportsList." 

Ie, something I am doing wrong. The question is what?

  • Well, right now in general this way: Service description 'http://86.57.245.235/TimeTable/Service.asmx?WSDL' can't be loaded: 503 Service Unavailable - PinkTux
  • Periodically happens. It does not work for them stably. - Ho195
  • Understood. In the Lite.pm module, the SOAPAction field is thus formed _on_action => sub {sprintf '"% s #% s"', shift || '', shift}, - Ho 195
  • The first shift is the namespace, the second methodName. The hell character is inserted, and it seems to be an anchor in the URL, it is not clear to me. And the fact is that not all SOAP servers behave loyally to this symbol. Some swallow, and some (as indicated in the original question) swear. - Ho195

0