我是SOAP的新手,我正在尝试在PHP中实现一个使用ASP.NET Web服务的快速测试客户端.Web服务依赖于包含授权参数的Soap Header.
使用WSDL时是否可以发送auth标头和soap请求?
我的代码:
PHP$service = new SoapClient("http://localhost:16840/CTI.ConfigStack.WS/ATeamService.asmx?WSDL"); $service->AddPendingUsers($users, 3); // Example网络服务
[SoapHeader("AuthorisationHeader")] [WebMethod] public void AddPendingUsers(Listusers, int templateUserId) { ateamService.AddPendingUsers(users, templateUserId, AuthorisationHeader.UserId); }
如何在此上下文中传递auth标头?或者我需要做一个低杠杆__soapCall()传递标题?另外,我在PHP中调用正确的soap调用吗?
您应该能够创建标头,然后将其添加到客户端,以便为所有后续请求发送它.您可能需要更改名称空间参数.
$service = new SoapClient("http://localhost:16840/CTI.ConfigStack.WS/ATeamService.asmx?WSDL"); // Namespace Header Name value must-understand $header = new SoapHeader('http://tempuri.org/', 'AuthorisationHeader', $value, false); $service->__setSoapHeaders(array($header)); $service->AddPendingUsers($users, 3); // Example
更多信息在这里