Zend Soap: SoapFault: неверный запрос на локальном хосте - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь создать и протестировать службу SOAP на моей локальной машине.

У меня есть следующий wsdl:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://api.eliqaat.local/api" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Eliqaat" targetNamespace="http://api.eliqaat.local/api">
   <types>
      <xsd:schema targetNamespace="http://api.eliqaat.local/api">
         <xsd:element name="eventCreate">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="params" type="xsd:anyType" />
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:schema>
   </types>
   <portType name="EliqaatPort">
      <operation name="eventCreate">
         <documentation>eventCreate</documentation>
         <input message="tns:eventCreateIn" />
      </operation>
   </portType>
   <binding name="EliqaatBinding" type="tns:EliqaatPort">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
      <operation name="eventCreate">
         <soap:operation soapAction="http://api.eliqaat.local/api#eventCreate" />
         <input>
            <soap:body use="literal" />
         </input>
      </operation>
   </binding>
   <service name="EliqaatService">
      <port name="EliqaatPort" binding="tns:EliqaatBinding">
         <soap:address location="http://api.eliqaat.local/api" />
      </port>
   </service>
   <message name="eventCreateIn">
      <part name="parameters" element="tns:eventCreate" />
   </message>
</definitions>

Я также настроил клиент с помощью Zend Soap, но клиент выдает ошибку «Bad Request», даже если кодирование и параметры кажутся нормальными. В логах сервера тоже ничего нет. Вот что я пытаюсь сделать с клиентом:

$client = new Client(Yii::$app->urlManager- 
>createAbsoluteUrl('api').'?wsdl',['soap_version'=>SOAP_1_2, 
'cache_wsdl'=>false]);

$result = $client->eventCreate(array('params'=>['yes'=>'no']));

echo $result->eventCreateResult;

Что я получу при запуске клиента:

0 - неверный запрос в строке 1038 в файле /home/rizwan/Projects/eliqaat.local/vendor/zendframework/zend-soap/src/Client.php

Что может быть не так?

...