SOAP возвращает неверный XML-ответ - PullRequest
0 голосов
/ 24 февраля 2012

Я использую объект Zend_Soap_Client для отправки запроса мыла в другое приложение. Вот формат XML, который он отправляет на сервер:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urllocation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:isAccountActive env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><param0 xsi:type="xsd:string">thisisatest</param0></ns1:isAccountActive></env:Body></env:Envelope>

Я использую его на других серверах SOAP, которые у меня есть и, кажется, работает нормально, но один из серверов возвратил ответ "Неверный XML" , поэтому мне действительно интересно, почему он не будет работать только на этом сервере . Любые идеи будут с благодарностью.

Дополнительные сведения :

Я пытался закомментировать код, который вызывает метод с сервера, вот код:

$client = new Zend_Soap_Client(null,
            array(
                'uri'=>'http://'.$user->customconfigs['alumniuri'],
                'encoding'=>'UTF-8',
                'location'=>'http://'.$user->customconfigs['alumnilocation']
            )
        );
        echo "Location: {$user->customconfigs['alumnilocation']} - uri: {$user->customconfigs['alumniuri']}";
        $alumniactive = $client->isAccountActive($token);

при комментировании:

$alumniactive = $client->isAccountActive($token);

ошибка исчезла. Это те же коды, что и в других моих приложениях, и оттуда работает нормально.

1 Ответ

0 голосов
/ 24 февраля 2012

После долгих поисков ответа на этот вопрос я, наконец, обнаружил проблему ... этот код фактически расположен на компоненте joomla, который я использовал как URI, так же, как у меня из местоположения, которое будет включать символ & ", что недопустимо в стандартах xml, удаление этих символов из моего xml приведет к тому, что SOAP-сервер примет запрос как действительный. :)

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