Ş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>";
}
?>