Php мыло сервисный элемент evenlope <return> - PullRequest
1 голос
/ 18 ноября 2010

Я пытаюсь создать веб-сервис по спецификации третьей стороны, которая будет подключаться к нему как к клиенту, сервис должен быть написан на PHP, но я полный PHP n00b, поэтому немного борюсь.В основном мои ответы заключены в элемент, однако клиент не принимает мои ответы из-за этого, вот пример.

service.php

<?php


class MyService {

    public function Ping() {
        return date('d/m/Y H:i:s');
    }

}


$server = new SoapServer(null, array( 'soap_version' => SOAP_1_2, 'encoding' => 'UTF-8', 'uri' => 'http://tempuri.org/'));
$server->setClass("MyService");
$server->handle();

?>

Запрос

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:Ping />
   </soapenv:Body>
</soapenv:Envelope>

Ответ

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:PingResponse>
         <return xsi:type="xsd:string">18/11/2010 18:51:02</return>
      </ns1:PingResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Клиент ожидает, что PingResponse будет просто содержать дату, но без обтекания снаружи.Как я могу заставить PHP SoapClient сделать это?

Например

<ns1:PingResponse>18/11/2010 18:51:02</ns1:PingResponse>

1 Ответ

0 голосов
/ 18 ноября 2010

Я не думаю, что вы можете, я думаю, что это записано в ядре SOAP, поэтому вашему клиенту придется обойти это. Если они уже получают содержимое PingResponse, я не вижу, чтобы им было гораздо труднее пройти на 1 дерево глубже в ответ.

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