Помогите составить SOAP запрос

d0ublezer0

Мой дом здесь!
Регистрация
21 Май 2009
Сообщения
367
Реакции
201
Привет! Есть вот такое WSDL сервиса от 1С
XML:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://serviceName/1C/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://serviceName/1C/" xmlns:xsd2="http://serviceName/1C/ClientOrder" xmlns:xsd3="http://serviceName/1C/Nomenclature" name="ZakazExchangeService" targetNamespace="http://serviceName/1C/">
    <script/>
    <types>
        <xs:schema xmlns:ns1="http://serviceName/1C/Nomenclature" xmlns:tns="http://serviceName/1C/ClientOrder" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://serviceName/1C/ClientOrder" attributeFormDefault="unqualified" elementFormDefault="qualified">
            <xs:import namespace="http://serviceName/1C/Nomenclature"/>
            <xs:complexType name="ArrayOfClientOrders">
                <xs:sequence>
                    <xs:element name="ClientOrder" type="tns:ClientOrder" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="ClientOrder">
                <xs:sequence>
                    <xs:element name="Number" type="xs:string"/>
                    <xs:element name="Date" type="xs:dateTime"/>
                    <xs:element name="Products" type="tns:ClientOrderRow" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="Status" type="xs:string" nillable="true"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="ClientOrderRow">
                <xs:sequence>
                    <xs:element name="Nomenclature" type="ns1:Nomenclature"/>
                    <xs:element name="Count" type="xs:double"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
        <xs:schema xmlns:tns="http://serviceName/1C/Nomenclature" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://serviceName/1C/Nomenclature" attributeFormDefault="unqualified" elementFormDefault="qualified">
            <xs:complexType name="ArrayOfNomenclature">
                <xs:sequence>
                    <xs:element name="Nomenclature" type="tns:Nomenclature" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="Nomenclature">
                <xs:sequence>
                    <xs:element name="Code" type="xs:string"/>
                    <xs:element name="Name" type="xs:string"/>
                    <xs:element name="Articul" type="xs:string" nillable="true"/>
                    <xs:element name="Parent" type="xs:string" nillable="true"/>
                    <xs:element name="EdIzm" type="xs:string"/>
                    <xs:element name="Price" type="xs:decimal"/>
                    <xs:element name="Stock" type="xs:decimal"/>
                    <xs:element name="IsPic" type="xs:boolean" nillable="true"/>
                    <xs:element name="Manufacturer" type="xs:string" nillable="true"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="http://serviceName/1C/ClientOrder" xmlns:xs2="http://serviceName/1C/Nomenclature" xmlns:xs3="http://serviceName/1C/" targetNamespace="http://serviceName/1C/" elementFormDefault="qualified">
            <xs:import namespace="http://serviceName/1C/ClientOrder"/>
            <xs:import namespace="http://serviceName/1C/Nomenclature"/>
            <xs:element name="GetNomenclature">
                <xs:complexType>
                    <xs:sequence/>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetNomenclatureResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs2:ArrayOfNomenclature" nillable="true"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetClientOrders">
                <xs:complexType>
                    <xs:sequence/>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetClientOrdersResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs1:ArrayOfClientOrders" nillable="true"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetNomenclatureFull">
                <xs:complexType>
                    <xs:sequence/>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetNomenclatureFullResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs2:ArrayOfNomenclature" nillable="true"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CreateOrder">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Data" type="xs1:ClientOrder"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CreateOrderResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetPicture">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Code" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetPictureResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs:base64Binary" nillable="true"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetClient">
                <xs:complexType>
                    <xs:sequence/>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetClientResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="return" type="xs:string" nillable="true"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </types>
    <message name="GetNomenclatureRequestMessage">
        <part name="parameters" element="tns:GetNomenclature"/>
    </message>
    <message name="GetNomenclatureResponseMessage">
        <part name="parameters" element="tns:GetNomenclatureResponse"/>
    </message>
    <message name="GetClientOrdersRequestMessage">
        <part name="parameters" element="tns:GetClientOrders"/>
    </message>
    <message name="GetClientOrdersResponseMessage">
        <part name="parameters" element="tns:GetClientOrdersResponse"/>
    </message>
    <message name="GetNomenclatureFullRequestMessage">
        <part name="parameters" element="tns:GetNomenclatureFull"/>
    </message>
    <message name="GetNomenclatureFullResponseMessage">
        <part name="parameters" element="tns:GetNomenclatureFullResponse"/>
    </message>
    <message name="CreateOrderRequestMessage">
        <part name="parameters" element="tns:CreateOrder"/>
    </message>
    <message name="CreateOrderResponseMessage">
        <part name="parameters" element="tns:CreateOrderResponse"/>
    </message>
    <message name="GetPictureRequestMessage">
        <part name="parameters" element="tns:GetPicture"/>
    </message>
    <message name="GetPictureResponseMessage">
        <part name="parameters" element="tns:GetPictureResponse"/>
    </message>
    <message name="GetClientRequestMessage">
        <part name="parameters" element="tns:GetClient"/>
    </message>
    <message name="GetClientResponseMessage">
        <part name="parameters" element="tns:GetClientResponse"/>
    </message>
    <portType name="ZakazExchangeServicePortType">
        <operation name="GetNomenclature">
            <input message="tns:GetNomenclatureRequestMessage"/>
            <output message="tns:GetNomenclatureResponseMessage"/>
        </operation>
        <operation name="GetClientOrders">
            <input message="tns:GetClientOrdersRequestMessage"/>
            <output message="tns:GetClientOrdersResponseMessage"/>
        </operation>
        <operation name="GetNomenclatureFull">
            <input message="tns:GetNomenclatureFullRequestMessage"/>
            <output message="tns:GetNomenclatureFullResponseMessage"/>
        </operation>
        <operation name="CreateOrder">
            <input message="tns:CreateOrderRequestMessage"/>
            <output message="tns:CreateOrderResponseMessage"/>
        </operation>
        <operation name="GetPicture">
            <input message="tns:GetPictureRequestMessage"/>
            <output message="tns:GetPictureResponseMessage"/>
        </operation>
        <operation name="GetClient">
            <input message="tns:GetClientRequestMessage"/>
            <output message="tns:GetClientResponseMessage"/>
        </operation>
    </portType>
    <binding name="ZakazExchangeServiceSoapBinding" type="tns:ZakazExchangeServicePortType">
        <soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetNomenclature">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetNomenclature"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetClientOrders">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetClientOrders"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetNomenclatureFull">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetNomenclatureFull"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
        <operation name="CreateOrder">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:CreateOrder"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetPicture">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetPicture"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetClient">
            <soapbind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetClient"/>
            <input>
                <soapbind:body use="literal"/>
            </input>
            <output>
                <soapbind:body use="literal"/>
            </output>
        </operation>
    </binding>
    <binding name="ZakazExchangeServiceSoap12Binding" type="tns:ZakazExchangeServicePortType">
        <soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetNomenclature">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetNomenclature"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetClientOrders">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetClientOrders"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetNomenclatureFull">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetNomenclatureFull"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
        <operation name="CreateOrder">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:CreateOrder"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetPicture">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetPicture"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
        <operation name="GetClient">
            <soap12bind:operation style="document" soapAction="http://serviceName/1C/#ZakazExchangeService:GetClient"/>
            <input>
                <soap12bind:body use="literal"/>
            </input>
            <output>
                <soap12bind:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="ZakazExchangeService">
        <port name="ZakazExchangeServiceSoap" binding="tns:ZakazExchangeServiceSoapBinding">
            <documentation>
                <wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1"/>
            </documentation>
            <soapbind:address location="http://siteAddress/ut_photo/ws/ZakazExchangeService.1cws"/>
        </port>
        <port name="ZakazExchangeServiceSoap12" binding="tns:ZakazExchangeServiceSoap12Binding">
            <soap12bind:address location="http://siteAddress/ut_photo/ws/ZakazExchangeService.1cws"/>
        </port>
    </service>
</definitions>

Пожалуйста, помогите составить запрос, чтобы хоть что-то из него получить.
В первую очередь интересует список номенклатуры
Исходя из примеров, что удалось найти в интернете, мне так и не удалось получить ничего, кроме описанного выше ответа, как ни комбинировал теги.

Запросы отправляю через postman
 
установите что-то из разряда soap-ui(linux) или что-то подобное на винду и скормите wsdl, в идеале вам выдаст примеры запросов, на крайний случай хотя бы покажет что и куда слать.
либо же скормить сразу в пхп и там будет __getFunctions() и getTypes()
Удалил тег script из определения

Код:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:c="http://serviceName/1C/">
   <soapenv:Header/>
   <soapenv:Body>
      <c:GetNomenclature/>
   </soapenv:Body>
</soapenv:Envelope>



1703549093572.png
 
soap-ui(linux) или что-то подобное
Спасибо огромное, нашелся этот клиент на mac, через него удалось отправить запрос и получить ответ.
Странно только, что через postman такой же запрос ничего не отдаёт.
 
Спасибо огромное, нашелся этот клиент на mac, через него удалось отправить запрос и получить ответ.
Странно только, что через postman такой же запрос ничего не отдаёт.
не туда отправляете или не то шлете, через постмен можно симулироват все.
 
Назад
Сверху