Как установить заголовок при регистрации веб-службы SOAP? - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю SOAP веб-сервис для клиента, используя nusoap lib (в PHP).

Ниже мой код:

    <?php


    require_once('include/nusoap/nusoap.php');

    function testFunction($msg){
        return $msg;
    }

    $server = new soap_server();

    $namespace = "http://www.test-site.com";    
    $server->configureWSDL("TEST_FUNCTION_SERVICE",$namespace);


    $server->register("testFunction",      // Register Method
     array('msg' => 'xsd:string'),    // Method Parameter
     array('return' => 'xsd:string'), // Response
     $namespace,                      // Namespace
     false,                           // soapaction: (use default)
     "rpc",                           // style: rpc or document
     "encoded",                       // use: encoded or literal
     "This is TEST Function"               // description: documentation for the method
    );

    $POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';

    @$server->service($POST_DATA);

    ?>

Когда я открываю функциюописание в браузере (с использованием Wizdler расширения в Chrome), оно выглядит следующим образом:

    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <Body>
            <testFunction xmlns="http://www.test-site.com">
                <msg>[string]</msg>
            </testFunction>
        </Body>
    </Envelope>

Я хочу установить тег Header в качестве дочернего элемента на Envelope , поэтому он должен выглядеть примерно так:

    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <Header>
            <Authenticate_Info xmlns="http://www.test-site.com">
                <UserName>[string?]</UserName>
                <Password>[string?]</Password>
                <EntityId>[int]</EntityId>
            </Authenticate_Info>
        </Header>
        <Body>
            <testFunction xmlns="http://www.test-site.com">
                <msg>[string]</msg>
            </testFunction>
        </Body>
    </Envelope>

Я изо всех сил пытаюсь установить его на 9 часов, но не могу найти какое-либо решение.

Буду признателен, есликто-то знает это.

...