PHP SOAP print the xml



如何在调用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>';

相关内容

最新更新