PDA

View Full Version : مشکل با zend soap و php soap



serious_joker
چهارشنبه 22 شهریور 1391, 11:12 صبح
سلام
کلا نمیشه از این soap server جواب گرفت. هر حالتی نوشتم موقع فراخوانی با soap client چه با زند و چه با SoapClient خطای زیر رو میده:

Fatal error: Uncaught SoapFault exception: [VersionMismatch] Wrong Version
اساسی درگیرشم و باید تا فردا تحویل بدم.
بنظرتون مشکل از کجاست

کد سمت سرور:


class Developers_ApiController extends Zend_Controller_Action {
public $parameters;
public $config;
public $session;
public $errors = array();
//change this to your WSDL URI!
private $_WSDL_URI;

public function init() {

$this -> config = Zend_Registry::get('config');
$this -> session = Zend_Registry::get('session');
$autoloader = new Zend_Application_Module_Autoloader( array('namespace' => 'Default', 'basePath' => dirname(dirname(__FILE__))));
$this -> _WSDL_URI = SITE_PATH . 'developers/api/soap';
$this->parameters = $this->_getAllParams();
$this->getHelper('viewRenderer')->setNoRender(true);

}

public function soapAction() {
header ("content-type: text/xml");
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setUri( sprintf($this->_WSDL_URI,0) );
$autodiscover->setClass('NAG_api' );

$autodiscover->handle();

exit;
}

public function restAction() {

$server = new Zend_Rest_Server();
$server -> setClass('NAG_api');
$server -> handle();
exit ;
}
}


کد سمت کلاینت (تست):


ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');

$soap_conf = array(
"trace" => 1,
'location' => 'http://example/developers/api/soap?wsdl',
'uri' => 'http://example/developers/api/soap',
"exceptions" => 1,
"soap_version" => SOAP_1_2,
'encoding' => 'UTF-8'
);
$client = new SoapClient(null,$soap_conf);
$params = array(
'username'=>'demo',
'password'=>'demo',
'to'=>'09123456789',
'from'=>'',
'message'=>'testتست',
'schedule' => FALSE
);
echo $client->__soapCall('SendMessage',$params);


[hr]
کلا نمی دونم جریان چیه! نمی دونم مشکل از ورژن soap سروره یا نه
ممکنه مثلا تو سرور ورژن 1.1 باشه و این زند از 1.2 استفاده کنه؟

serious_joker
چهارشنبه 22 شهریور 1391, 14:20 عصر
یک سری تغییرات دادم حالا متوجه شدم اشکال از برنامه خودمه ممکنه یه تداخلی باشه که خطا بصورت زیر هست:

( ! ) Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://example/developers/api/soap?wsdl' : Extra content at the end of the document in F:\www\example\core\library\Zend\Soap\Client\Commo n.php on line 51

میشه کمکم کنید؟ من همه جای برنامه رو گشتم. هیچ هدری قبل از این ارسال نمی شه و کاراکتری هم ارسال نمیشه ...