SOAP установил правильные заголовки xmlns

У меня две проблемы с настройкой заголовков SOAP. Прежде всего, я никогда не делал этого раньше и двух, я не могу найти подходящее решение для этого. Приносим извинения, если есть точные дубликаты, и, пожалуйста, указывайте мне в правильном направлении.

Мне нужно установить следующие xmlns: xsi и xmlns: наборы данных xsd на мыло: Конверт. Мне также нужно установить атрибут xmlns для первого тега в XML (примерный пример).

Первая часть должна быть добавлена, вторая часть уже существует, когда я делаю __getLastRequest (). И третья часть должна быть добавлена ​​(только атрибут SendPurchases xmlns).

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ xmlns:ns1="urn:[taken out for security purposes]"> <soap:Body> <SendPurchases xmlns="urn:..."> </SendPurchases> </soap:Body> 

Должен ли я использовать заголовок () для этого? Я использую PHP-SOAP-клиент. Любая помощь вообще очень ценится!

РЕДАКТИРОВАТЬ:

Я пошел с другим маршрутом, спасибо вам за все ваши ответы!

Solutions Collecting From Web of "SOAP установил правильные заголовки xmlns"

У меня была симулятивная проблема с конвертом, я сделал это для исправления. Я отправлю исправление с предоставленными вами данными, вам нужно будет проверить, все ли око:

Пользовательский класс для редактирования запроса:

 class CustomSoapClient extends SoapClient { function __doRequest($request, $location, $action, $version) { $request = str_replace('<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">', '', $request); // parent call return parent::__doRequest($request, $location, $action, $version); } } 

Настройка клиента мыла:

 $client = new CustomSoapClient($wsdl, array( 'features' => SOAP_SINGLE_ELEMENT_ARRAYS, 'exceptions' => true, 'trace' => 1, 'soap_version' => SOAP_1_2, )); 

Запрос:

 //notice that the envelope is in the request! also you need to change the urn $request = ' <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/xmlns:ns1="urn:[taken out for security purposes]"> <soap:Body> <SendPurchases xmlns="urn:..."> </SendPurchases> </soap:Body> </SOAP-ENV:Envelope>'; $xmlvar = new SoapVar($request, XSD_ANYXML); $result = $client->Controleer($xmlvar); print_r($result); // finally check the result 

Я надеюсь, что это поможет вам 🙂

Подробный пример правильной реализации с использованием PHP SoapClient можно найти здесь: http://www.php.net/manual/en/soapclient.soapclient.php#97273