Модераторы: Aliance, IZ@TOP, SamDark, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как сгенерировать правильный xml запрос soap ом, soapclient генерит не совсем нужный xml 
:(
    Опции темы
Dave
Дата 10.5.2012, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: нет
Всего: 1



Приветствую!
такая задача, нужно сгененировать такой xml запрос 
Код

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
      <AuthMember xmlns="http://tempuri.org/">
           <somefield>string</somefield>
      </AuthMember>
  </soap:Header>
  <soap:Body>
      <AuthenticateMember xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>


я делаю так:
Код

class SoapHeaderAuthMember
    {

        public $somefield;

        public function __construct($somefield)
        {

            $this->somefield = $somefield;        

        }
    }

    $client = new SoapClient( 'https://www.somepage.com/service.asmx?WSDL', 
        array("exceptions"=>0, "trace" => 1 )
    );
    $authMember = new SoapHeaderAuthMember('somefieldvalue');


    $soapHeaders[] = new SoapHeader('http://schemas.xmlsoap.org/ws/2002/07/utility', 'AuthMember', $authMember);
    $client->__setSoapHeaders($soapHeaders);                 

    $client->__soapCall('AuthenticateMember',array());



получаю на выходе:

Код

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"    xmlns:ns1="http://tempuri.org/" xmlns:ns2="http://schemas.xmlsoap.org/ws/2002/07/utility">
<SOAP-ENV:Header>
    <ns2:AuthMember>
        <somefield>somefieldvalue</somefield>
    </ns2:AuthMember>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
    <ns1:AuthenticateMember/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>



как видите:
1. генерирует SOAP-ENV:Envelope вместо SOAP-ENV:Envelope

2. в хедере: сгеренировало ns2:AuthMember вместо AuthMember

3.в body  ns1:AuthenticateMember вместо AuthenticateMember xmlns="http://tempuri.org/"

Как можно это все исправить ? 
читал доку по php soapclient нужных опций не нашел как это сделать, помогите плз.

PM MAIL   Вверх
Fortop
Дата 11.5.2012, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Dave @  10.5.2012,  21:09 Найти цитируемый пост)
2. в хедере: сгеренировало ns2:AuthMember вместо AuthMember


Цитата(Dave @  10.5.2012,  21:09 Найти цитируемый пост)
в body  ns1:AuthenticateMember вместо AuthenticateMember xmlns="http://tempuri.org/"

Ну и чем это грозит?

И вообще, недурно было бы привести сам wsdl файл


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Google
  Дата 23.9.2017, 08:37 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1225 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.