. NET sunucusuna bağlanarak PHP NuSOAP sorunu zaman: ". Nesne başvurusu bir nesnenin örneğine ayarlanmadı"

1 Cevap ûnet

Şu anda PHP kullanarak bir SOAP proje üzerinde çalışıyorum. Komut uzak. NET hizmeti sunucusuna bağlanıyor. Ben sağlamak HelloWorld eylemini kullanarak güzel bir cevap almak, ancak komut diğer eylemleri kullanan başka herhangi bir veri almak için gittiğinde, ben olsun

"Object reference not set to an instance of an object."

$data array (aşağıya bakınız) bir diffgram alt dizisinde.


Burada hizmet URL'leri ve params hariç, geçerli kod.

<?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</pre>";

    echo "<h2>Debug</h2><pre>$debug</pre>";

    exit;
}

$params = array(

    'ID' => 123,
);

$send = $params;

$do = $options['base'] . $options['act'];

$data = $client->call($options['act'], $send, $do, $do);    

if($data && $data = (array) $data) {
    echo "<h2>Call data</h2>";
    echo "<pre>" .  print_r($data,true) . "</pre>";
}
?>

1 Cevap

soapUI ya da benzer başka bir soap sınama istemci (ücretsiz bir sürümü var) deneyin ve beklendiği gibi tüketen web hizmeti aslında çalıştığından emin olun. Öyle ise, then sizin kod hakkında endişe.