PHP SoapClient - пустые значения, возвращаемые вызовами функций SOAP - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь узнать, как работает SOAP, и пытаюсь поработать со встроенным PHP-классом SoapClient с помощью веб-службы SOAP «Калькулятор», которую я обнаружил (http://www.dneonline.com/calculator.asmx?WSDL).

.проблема в том, что я пытался выполнить некоторые вызовы функций для этого веб-сервиса, но каждый раз, когда я делаю это, он возвращает пустые значения.

Это код PHP, который я сделал:

<?php
// SOAP practice file

ini_set('soap.wsdl_cache_enabled', 0);
ini_set('soap.wsdl_cache_ttl', 900);
ini_set('default_socket_timeout', 15);

$client = new SoapClient('http://www.dneonline.com/calculator.asmx?WSDL', array('trace' => 1));
print_r($client->__getFunctions());

try {
    $params = array('intA' => 3, 'intB' => 20);
} catch (SoapFault $fault){
    $fault->getMessage();
}

$objResult = $client->Add($parmas);
$result = $objResult->AddResult;

var_dump($result);
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";

И это подробный вывод, который у меня есть:

Array
(
    [0] => AddResponse Add(Add $parameters)
    [1] => SubtractResponse Subtract(Subtract $parameters)
    [2] => MultiplyResponse Multiply(Multiply $parameters)
    [3] => DivideResponse Divide(Divide $parameters)
    [4] => AddResponse Add(Add $parameters)
    [5] => SubtractResponse Subtract(Subtract $parameters)
    [6] => MultiplyResponse Multiply(Multiply $parameters)
    [7] => DivideResponse Divide(Divide $parameters)
)
int(0)
REQUEST:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"><SOAP-ENV:Body><ns1:Add/></SOAP-ENV:Body></SOAP-ENV:Envelope>

Не могли бы вы помочь мне рассказать, что случилось с моим кодом?
Спасибо за помощь!

1 Ответ

0 голосов
/ 10 декабря 2018

Вы используете неверную переменную при вызове действия soap.

 $objResult = $client->Add($parmas);

это должно быть $ params .Пожалуйста, включите журнал ошибок в следующий раз, когда вы введете код.

...