2014-12-29 2 views
3

Я пытаюсь вызвать ФОС веб-сервис из PHP клиентаPhp клиент мыла + получение нулевого ответ

WSDL https://ws-web.test.nhn.no/v1/AR?wsdl

$url = 'https://ws-web.test.nhn.no/v1/AR?wsdl'; 
$params = array('login' => '*****', 
    'password' => '######', 
    'soap_version' => SOAP_1_2, 
    'trace' => TRUE); 

$client = new SoapClient($url, $params); 
var_dump($client->__soapCall("Ping")); 

С выше кодой я всегда получаю null ответ и я не удалось вызвать другие функции от wsdl

Если я попробую это с другим синтаксисом, иногда получаю action mismatch error, и я также получаю null Ответ в мыльном интерфейсе.

+0

Я думаю, что параметры недействительны. Можете ли вы проверить, есть ли у вас нулевой ответ, если вы не установили логин и пароль? –

+0

@PeterDarmis m получает успешный ответ для переменной клиента, поэтому я думаю, до тех пор, пока все будет хорошо :( может кто-нибудь просто уточнить, как предсказать имена переменных и функции от wsdl –

+0

Я думаю, мне нужно изменить метод аутентификации на базовый из WS-Security любой орган, имеющий какую-либо идею, как это сделать в php soap? –

ответ

0

На основе WSDL функция Ping имеет входное сообщение.

<wsdl:operation name="Ping"> 
    <wsdl:input wsam:Action="http://register.nhn.no/CommunicationParty/ICommunicationPartyService/Ping" message="tns:ICommunicationPartyService_Ping_InputMessage"/> 
    <wsdl:output wsam:Action="http://register.nhn.no/CommunicationParty/ICommunicationPartyService/PingResponse" message="tns:ICommunicationPartyService_Ping_OutputMessage"/> 
</wsdl:operation> 

Ввод сообщения состоит из параметров, определенных здесь ...

<wsdl:message name="ICommunicationPartyService_Ping_InputMessage"> 
    <wsdl:part name="parameters" element="tns:Ping"/> 
</wsdl:message> 

И, наконец, объект Ping не выглядит, как он имеет какие-либо свойства. Weird.

<xs:element name="Ping"> 
    <xs:complexType> 
     <xs:sequence/> 
    </xs:complexType> 
</xs:element> 

Так что дайте это попробовать.

$pingObj = new stdClass(); 
$client->__soapCall("Ping", [$pingObj]); 
Смежные вопросы