肥皂头没有标题名称php

时间:2013-03-12 15:42:57

标签: php soap header

我遇到了创建肥皂电话的问题。可以看到从第三方客户端提供的标头没有标头名称。我需要通过将用户名和密码传递给头部中没有名称的soap请求来创建soap调用。我尝试了几个例子但没有成功。下面的调用在soap UI中运行,但是当涉及到php时我遇到了严重的问题。任何帮助将不胜感激

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://namespace.example.com/">
   <soapenv:Header>
      <int:password>123</int:password>
      <int:login>abc</int:login>
   </soapenv:Header>
   <soapenv:Body>
      <int:getEventTree>
         <!--Optional:-->
         <lang>en</lang>
      </int:getEventTree>
   </soapenv:Body>
</soapenv:Envelope>

1 个答案:

答案 0 :(得分:0)

请查看http://php.net/manual/en/soapclient.dorequest.php

您可以使用以下代码:

$response = $soapClient->__doRequest(
    $request,
    $endpoint,
    $soapAction,
    $soapVersion,
    $one_way       
);

$ request可以定义为包含xml的字符串,例如:

$request = 
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/""xmlns:int="http://namespace.example.com/">
    <soapenv:Header>
        <int:password>123</int:password>
        <int:login>abc</int:login>
    </soapenv:Header>
    <soapenv:Body>
        <int:getEventTree>
            <!--Optional:-->
            <lang>en</lang>
        </int:getEventTree>
    </soapenv:Body>
</soapenv:Envelope>';

您可以根据您的配置在__doRequest()调用中定义其余参数。

相关问题