За последние 24 часа нас посетили 194337 программистов и 1996 роботов. Сейчас ищет 1441 программист ...

Не передаются параметры в SOAP метод

Тема в разделе "PHP для новичков", создана пользователем mazahaler, 21 дек 2017.

  1. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    Здравствуйте, есть Soap метод. Выглядит он так:
    Код (Text):
    1. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://bus.rbi.com/service/reports/v1" xmlns:v11="http://bus.rbi.com/common/support/v1" xmlns:v12="http://bus.rbi.com/common/query/v1">
    2.    <soapenv:Header/>
    3.    <soapenv:Body>
    4.       <v1:loadReportsListElem>
    5.          <!--Optional:-->
    6.          <v11:head>
    7.             <v11:startRow>1</v11:startRow>
    8.             <!--Optional:-->
    9.             <v11:maxRows>6</v11:maxRows>
    10.          </v11:head>
    11.          <v1:filter>
    12.             <v12:and>
    13.                <v12:like attr="code">
    14.                   <v12:value>%</v12:value>
    15.                </v12:like>
    16.                <v12:like attr="mapping">
    17.                   <v12:value>%</v12:value>
    18.                </v12:like>
    19.                <v12:like attr="dataFunction">
    20.                   <v12:value>%</v12:value>
    21.                </v12:like>
    22.             </v12:and>
    23.          </v1:filter>
    24.       </v1:loadReportsListElem>
    25.    </soapenv:Body>
    26. </soapenv:Envelope>
    Я пытаюсь передать параметры startRow и maxRows, однако они не передаются.
    Я пытался сделать так:
    PHP:
    1.  $paramsList = array(
    2.             "startRow" => 1,
    3.             "maxRows" => 3
    4.       );
    5.  
    6.       $responseList = $client->__soapCall("loadReportsList", array($paramsList));
    и так:
    PHP:
    1. $responseList=$client->loadReportsList(1,3);
    и еще вот так:
    PHP:
    1.       $responseList=$client->loadReportsList(array('startRow' => 1,'maxRows'=>3));
    но это не работает и запрос всегда выполняется с дефолтными параметрами

    Нужна помощь.
     
  2. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    UPD.
    PHP:
    1.   echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
    ничего не возвращает
     
  3. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @mazahaler, startRow и maxRows являются входят в тег <head>. Попробуйте использовать массив соответствующей структуры:
    PHP:
    1. $paramsList = array('head'=> array('startRow' => 1, 'maxRow' => 3));
     
    mazahaler нравится это.
  4. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    @Sail, огромное спасибо, это работает.