我使用 SOAPServer
在php中创建了一个Web服务 . 它希望看到带有用户名和密码元素的 SoapHeader
UsernameToken
. 当我在请求中包含此标头时,一切都工作正常 . 只需在名为"UsernameToken"的Soap处理程序类中定义一个方法,就会调用此方法并将stdClass Obj传递给它 . 然后我可以通过 $Obj->username
和 $Obj->password
验证用户 .
我不知道要添加到WSDL文件中的内容首先定义这个 UsernameToken
头,然后如何在WSDL中指示它是必需的?
我在某处读到过新的SOAP标准不赞成“必需” Headers 的概念 .
关于如何至少指出的任何建议是我的wsdl请求应该包括这个 Headers ?
3 回答
以下是指定登录的WSDL示例:https://ws1.webservices.nl/soap_doclit?wsdl
你看过http://www.w3.org/TR/wsdl的section 2.1.3了吗?我也找不到任何需要被剥夺的东西 .
答案很长 . 见this帖子 .
在客户端中,您可以使用mustUnderstand属性来指示标头条目是必需的还是可选的,以供收件人处理 . 如果服务器不能或不想处理强制标头,则必须向客户端抛出SOAP Fault .