SOAP-запрос через PHP - PullRequest
       10

SOAP-запрос через PHP

0 голосов
/ 10 апреля 2019

Я попытался создать запрос для SOAP wsdl, запрос и ответ на запрос:

Запрос SOAP:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sub="http://subscriberprovisioning.ws.nvsmx.domain.com/">
<soap:Header/><soap:Body>
<sub:wsGetSubscriberProfileByID><subscriberID>123456789</subscriberID><alternateID></alternateID><parameter1></parameter1><parameter2></parameter2>
</sub:wsGetSubscriberProfileByID></soap:Body></soap:Envelope>

Ответ

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body><ns2:wsGetSubscriberProfileByIDResponse xmlns:ns2="http://subscriberprovisioning.ws.nvsmx.domain.com/">
<return><responseCode>200</responseCode><responseMessage>SUCCESS</responseMessage><subscriberProfile>
<entry><key>SUBSCRIBER_IDENTITY</key><value>123456789</value></entry>
</subscriberProfile></return></ns2:wsGetSubscriberProfileByIDResponse></soap:Body></soap:Envelope>

Я использую php для создания запроса, код выглядит так:

request.php

<?php

$client = new SoapClient("http://ipnumber:1988/services/Subscriber?wsdl"); 





$param = array('subscriberId' => '123456789');
$response = $client->wsGetSubscriberProfileByID    ($param);

var_dump($response);

в приведенном выше коде 'subscriberId' => '123456789' не передается в wsdl, и я получил ответ об отсутствующем параметре.Я также тестировал с помощью SOAP UI, и он работал.Любое предложение по моему php-коду.

Спасибо

1 Ответ

0 голосов
/ 10 апреля 2019

Наконец-то все заработало в этом коде:

try{
$soapclient = new SoapClient('http://ipnumber:1988//services/Subscriber?wsdl');
$param=array('subscriberID'=>'123456789');
$response =$soapclient->wsGetSubscriberProfileByID($param);
var_dump($response);
echo '<br><br><br>';
$array = json_decode(json_encode($response), true);
print_r($array);
 echo '<br><br><br>';
      echo '<br><br><br>';
    foreach($array as $item) {
        echo '<pre>'; var_dump($item);
    }  
}catch(Exception $e){
    echo $e->getMessage();
}
...