我想在PHP中獲得肥皂響應。它不斷作爲一個對象來到我的Web瀏覽器,但不是xml。 WSDL顯示爲XML,但不顯示收到的響應。以下是我的服務器端代碼。 SOAP服務器是使用Zend皁肥皂響應在陣列
ini_set("soap.wsdl_cache_enabled", 0);
if (isset($_GET['wsdl'])){
$wsdl = 'http://localhost/webservice/soap';
$autoDiscover = new AutoDiscover();
$autoDiscover->setOperationBodyStyle(
array('use' => 'literal',
'namespace' => 'http://localhost/webservice/soap')
);
$autoDiscover->setBindingStyle(
array('style' => 'rpc',
'transport' => 'http://schemas.xmlsoap.org/soap/http')
);
$autoDiscover->setComplexTypeStrategy(new ArrayOfTypeComplex());
// $service is the class that does the handling of functions
$autoDiscover->setClass($service);
$autoDiscover->setUri($wsdl);
$response->getHeaders()->addHeaderLine('Content-Type', 'text/xml');
$response->setContent($autoDiscover->toXml());
} else {
$server = new Server('http://localhost/webservice/soap?wsdl'
);
// $service is the class that does the handling of functions
$server->setObject($service);
$response->setContent($server->handle());
}
return $response;
}
服務類
class service
{
/**
*
* @param string $Email
* @return int $Credit
*/
public function checkCredits($Email)
{
$validator = new email();
if (!$validator->isValid($Email))
{
return new \SoapFault('5', 'Please Provide an Email');
}
$rowset = $this->tableGateway->select(array('EMAIL'=>$Email))
$row = $rowset->current();
$credits = $row->CREDITS;
return $credits;
}
}
要求是:
try{
$sClient = new SoapClient('http://localhost/webservice/soap?wsdl');
$params = "email";
$response = $sClient->checkCredits($params);
var_dump($response);
} catch(SoapFault $e){
var_dump($e);
}
哪裏是要求? – DevZer0
$ client = new SoapClient(「wsdl」,array('trace'=> 1,'features'=> SOAP_SINGLE_ELEMENT_ARRAYS,'style'=> SOAP_DOCUMENT, 'use'=> SOAP_LITERAL)); $ result = $ client-> webservice('137'); $ rr = $ client-> getLastResponse(); print_r($ rr); – snab
所以你有一個函數來處理這個特定的調用? – DevZer0