提供的crs代码无效

时间:2016-06-01 12:00:38

标签: node.js soap wsdl darwin

嗨,我收到此错误

'invalid crs code supllied'

我正在使用以下代码访问实时离境委员会Web服务(LDBWS / OpenLDBWS),如上所述here

var soap = require('soap');
  var url = 'https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx?ver=2016-02-16';
  var soapHeader = '<AccessToken><TokenValue>********token********</TokenValue></AccessToken>'
  var args = {
    numRows: 10,
    crs: 'LST',
    filterCrs:'',
    filterType:'',
    timeOffset:'',
    timeWindow:''   
};

  soap.createClient(url, function(err, client) {
      client.addSoapHeader(soapHeader);
    return client.GetArrivalDepartureBoard(args, function(err, result) {
        return console.log(JSON.stringify(result));
    }); 
  });

2 个答案:

答案 0 :(得分:0)

似乎&#39;可选&#39;参数filterCrs不是那么可选。

SOAP请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://thalesgroup.com/RTTI/2013-11-28/Token/types" xmlns:ldb="http://thalesgroup.com/RTTI/2016-02-16/ldb/">
   <soapenv:Header>
      <typ:AccessToken>
         <typ:TokenValue><!-- token --></typ:TokenValue>
      </typ:AccessToken>
   </soapenv:Header>
   <soapenv:Body>
      <ldb:GetDepartureBoardRequest>
         <ldb:numRows>10</ldb:numRows>
         <ldb:crs>WBY</ldb:crs>
         <!--Optional:-->
         <ldb:filterCrs>WAT</ldb:filterCrs>
         <!--Optional:-->
         <ldb:filterType>to</ldb:filterType>
         <!--Optional:-->
         <ldb:timeOffset>0</ldb:timeOffset>
         <!--Optional:-->
         <ldb:timeWindow>120</ldb:timeWindow>
      </ldb:GetDepartureBoardRequest>
   </soapenv:Body>
</soapenv:Envelope>

SOAP响应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetDepartureBoardResponse xmlns="http://thalesgroup.com/RTTI/2016-02-16/ldb/">
         <GetStationBoardResult xmlns:lt3="http://thalesgroup.com/RTTI/2015-05-14/ldb/types" xmlns:lt5="http://thalesgroup.com/RTTI/2016-02-16/ldb/types" xmlns:lt4="http://thalesgroup.com/RTTI/2015-11-27/ldb/types" xmlns:lt="http://thalesgroup.com/RTTI/2012-01-13/ldb/types" xmlns:lt2="http://thalesgroup.com/RTTI/2014-02-20/ldb/types">
            <lt4:generatedAt>2016-08-03T09:02:33.8595652+01:00</lt4:generatedAt>
            <lt4:locationName>West Byfleet</lt4:locationName>
            <lt4:crs>WBY</lt4:crs>
            <lt4:filterLocationName>London Waterloo</lt4:filterLocationName>
            <lt4:filtercrs>WAT</lt4:filtercrs>
            <lt4:platformAvailable>true</lt4:platformAvailable>
            <lt5:trainServices>
               <lt5:service>
                  <lt4:std>09:06</lt4:std>
                  <lt4:etd>On time</lt4:etd>
                  <lt4:operator>South West Trains</lt4:operator>
                  <lt4:operatorCode>SW</lt4:operatorCode>
                  <lt4:serviceType>train</lt4:serviceType>
                  <lt4:serviceID>w1psUjGu8tUpdYWgxHrUIw==</lt4:serviceID>
                  <lt5:rsid>SW752000</lt5:rsid>
                  <lt5:origin>
                     <lt4:location>
                        <lt4:locationName>Guildford</lt4:locationName>
                        <lt4:crs>GLD</lt4:crs>
                     </lt4:location>
                  </lt5:origin>
                  <lt5:destination>
                     <lt4:location>
                        <lt4:locationName>London Waterloo</lt4:locationName>
                        <lt4:crs>WAT</lt4:crs>
                     </lt4:location>
                  </lt5:destination>
               </lt5:service>
               <!-- snip -->
            </lt5:trainServices>
         </GetStationBoardResult>
      </GetDepartureBoardResponse>
   </soap:Body>
</soap:Envelope>

答案 1 :(得分:0)

我遇到了类似的问题,结果发现这是我使用的node-soap的版本。

将其更改为“0.11.4”,现在可以正常使用。

归功于 - https://groups.google.com/forum/#!topic/openraildata-talk/aiw2RuJf7Fo