如何在调用soap调用之前打印soap调用的XML ?
从我所看到的,你需要改变dorequest函数,但在这样做你得到"SoapClient::__doRequest()返回非字符串值"
代码
public function __doRequest($request, $location, $action, $version, $one_way=0) {
var_dump( $request);
}
public function __doRequest($request, $location, $action, $version, $one_way=0) {
var_dump( $request);
return parent::__doRequest($request, $location, $action, $version, $one_way);
}
我已经为webservice使用了nussoap调用。它可以像肥皂电话一样工作,我希望这对你有帮助。下面是我使用的代码
$param = array('strUsuario' => $credentials['username'],
'strPassword' => $credentials['password'],
);
$client = new nusoap_client('http://www.byte-factory.com/fidelizacion/webservice/v1/cfidelizacion.asmx?WSDL','WSDL');
$client->setCredentials($credentials['username'], $credentials['password'], 'digest');
$result = $client->call('IniciarSesion', array('parameters' => $param), '', '', false, true);
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
$err = $client->getError(); // Check for errors
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>'; // Display the error
} else {
echo '<h2>Result</h2><pre>'; // Display the result
print_r($result['IniciarSesionResult']);
echo '</pre>';
}
}
// Display the request and response
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
// Display the debug messages
echo '<h2>Debug</h2>';
echo '<pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';