服务器端正在调用我的头方法(AuthHeader),但param值是一个对象,打印为'1'。我期望一个"ticket"字符串(如$header->ticket中所示),如下wsdl中所定义。
public function AuthHeader($header)
{
try {
error_log(print_r($header));
...
wsdl定义。。。
<element name="AuthHeader">
<complexType>
<sequence>
<element name="ticket" type="xsd:string"/>
</sequence>
</complexType>
</element>
我认为我已经正确设置了所有内容,并且转储传入的请求表明标头是正确的。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/SOAP/"><SOAP-ENV:Header><ns1:AuthHeader><ns1:ticket>myticketval</ns1:ticket></ns1:AuthHeader></SOAP-ENV:Header><SOAP-ENV:Body>...
我做错了什么?
尝试将对象强制转换为字符串。在过去,我不得不对SimpleXML对象执行这种操作,在您的情况下可能也是如此。
print (string)$header;