почему getLastRequest ничего не возвращает? - PullRequest
10 голосов
/ 16 марта 2012

Я пытаюсь получить запрос XML:

$cgProxy = new SoapClient($WSDL_URL,array('trace' => 1));

try {
        $result = $cgProxy->OrderCreate($cgOrder);

} catch (SoapFault $exc) {
        var_dump($exc);
        echo "Request:\n" . $cgProxy->__getLastRequest(), "\n";
        echo "Response:\n" . $cgProxy->__getLastResponse() . "\n";
}

При этом я получаю ошибку сервера мыла из дампа $ exc. Но getLastRequest, похоже, ничего не возвращает. Есть мысли?

Я также попытался с htmlspecialchars () и htmlentities () безуспешно. , .

Ответы [ 3 ]

21 голосов
/ 16 января 2013

getLastRequest():

Этот метод работает, только если объект SoapClient был создан с параметром трассировки TRUE.

$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1));

в этом случае у меня работает.

6 голосов
/ 14 января 2015

Возможно, потому что XML в вашем браузере не печатается как строка.Если это так, попробуйте что-то вроде этого:

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";
2 голосов
/ 15 декабря 2016

Я знаю, что уже поздно, но ...

Возможно, вы на самом деле никогда не делаете запрос.Если PHP не может создать вызов SOAP, вы никогда не доберетесь до точки, где вы отправляете запрос XML.Проверьте журнал ошибок на наличие ошибок PHP SOAP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...