我遇到了创建肥皂电话的问题。可以看到从第三方客户端提供的标头没有标头名称。我需要通过将用户名和密码传递给头部中没有名称的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>
答案 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()调用中定义其余参数。