Ошибка PHP nuSoap при подключении к серверу .NET: «Ссылка на объект не установлена ​​на экземпляр объекта» - PullRequest
1 голос
/ 15 апреля 2010

В настоящее время я работаю над проектом SOAP с использованием PHP. Скрипт подключается к удаленному серверу .NET. Я получаю хороший ответ, используя действие HelloWorld , но когда сценарий получает другие данные, используя другие действия, я получаю

"Ссылка на объект не установлена ​​для экземпляра объекта."

в подгруппе diffgram массива данных $ (см. Ниже).


Вот текущий код, исключая сервисные URL и параметры.

<code><?php

require_once('../lib/nusoap.php');

$options = array(

    # server

    'wsdl'  => false,
    'srvr'  => 'http://test.domain.com/soap/file.asmx',

    'base'  => 'http://sub.domain.com/',
    'act'   => isset($_POST['act'])     ? $_POST['act']     : 'RequestSomething',

    'curl'  => isset($_POST['curl'])    ? $_POST['curl']    : false,
    'char'  => 'UTF-8',

    # proxy

    'host'  => isset($_POST['host'])    ? $_POST['host']    : false,
    'port'  => isset($_POST['port'])    ? $_POST['port']    : false,
    'user'  => isset($_POST['user'])    ? $_POST['user']    : false,
    'pass'  => isset($_POST['pass'])    ? $_POST['pass']    : false,

);

$client = new nusoap_client(

    $options['srvr'],       $options['wsdl'],

    $options['host'],       $options['port'],       $options['user'],       $options['pass']

);

$client->soap_defencoding = $options['char']; 

$client->setUseCurl($options['curl']);

$error = $client->getError();

if($error){

    $debug = htmlspecialchars($client->getDebug(), ENT_QUOTES);

    echo "<h2>Error</h2><pre>$error
"; echo "

Debug

$debug
"; выход; } $ params = array ( 'ID' => 123, ); $ send = $ params; $ do = $ options ['base']. $ опции [ 'действие']; $ data = $ client-> call ($ options ['act'], $ send, $ do, $ do); if ($ data && $ data = (array) $ data) { echo "

Данные вызова

"; echo "
" .  print_r($data,true) . "
"; } ?>

1 Ответ

1 голос
/ 13 октября 2011

Попробуйте soapUI (есть бесплатная версия) или другой аналогичный тестовый клиент SOAP и убедитесь, что веб-служба, которую вы используете, действительно работает должным образом. Если это так, , тогда беспокоиться о вашем коде.

...