PHP-клиент WCF - получение «неверного запроса» или «ошибки безопасности» - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь получить ответ от веб-службы с WCF. Сервер использует протокол «BasicHTTPBinding» с SOAP 1.1 (базовый профиль WS-I 1.1).

app.config:

<system.serviceModel>
<bindings>
    <basicHttpBinding>
        <binding name="BasicHttpBinding_firmaService" sendTimeout="00:01:00" receiveTimeout="00:10:00"
        maxBufferSize="500000000" maxBufferPoolSize="500000000" maxReceivedMessageSize="500000000">
            <readerQuotas maxDepth="32" maxStringContentLength="500000000" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binding>
    </basicHttpBinding>
</bindings>
<behaviors>
    <endpointBehaviors>
        <behavior name="XXXBehavior">
            <dataContractSerializer maxItemsInObjectGraph="50000000"/>
        </behavior>
    </endpointBehaviors>
</behaviors>
<client>
    <endpoint address="https://xyz.firma.com/V2xx/Service.svc" behaviorConfiguration="XXXBehavior" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_firmaService" contract="ServiceReferenceXXX.firmaService" name="BasicHttpBinding_firmaService" />
</client>

и Запрос должен быть таким:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <u:Timestamp u:Id="_0">
            <u:Created>2018-09-05T14:55:19.366Z</u:Created>
            <u:Expires>2018-09-05T15:00:19.366Z</u:Expires>
        </u:Timestamp>
        <o:UsernameToken u:Id="uuid-f6651994-dbbb-4765-b3d0-a2489410ffda-5">
            <o:Username>user</o:Username>
            <o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass</o:Password>
        </o:UsernameToken>
    </o:Security>
</s:Header>
<s:Body>
    <getServiceTest xmlns="http://tempuri.org/">
        <filter xmlns:a="http://www.enterprise.de/modell2.1.0.1.0" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <a:Erweiterung i:type="a:Anfrage">
                <a:FreieAttribute i:nil="true"/>
                <a:VorgabeModus>Testbetrieb</a:VorgabeModus>
                <a:VorgabeLand>D</a:VorgabeLand>
                <a:VorgabeNurPlaintext>false</a:VorgabeNurPlaintext>
                <a:VorgabeProfil i:nil="true"/>
                <a:VorgabeSparte>KeineAngabe</a:VorgabeSparte>
                <a:VorgabeTarifart>Keine</a:VorgabeTarifart>
            </a:Erweiterung>
            <a:BiPROVersion i:nil="true"/>
            <a:ConsumerID i:nil="true"/>
            <a:Input>Test it!</a:Input>
        </filter>
    </getServiceTest>
</s:Body>

Мои вопросы:
Как должны выглядеть шаги?
Как получить ответ от Сервера?

Спасибо за любую помощь.

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