0

我的标头方法 (AuthHeader) 在服务器端被调用,但参数值是一个对象并打印为“1”。我期待下面的 wsdl 中定义的 'ticket' 字符串(如 $header->ticket 中的)。

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>...

我究竟做错了什么?

4

1 回答 1

0

尝试将对象转换为字符串。过去我不得不使用 SimpleXML 对象来做这件事,在你的情况下可能是一样的。

print (string)$header;
于 2012-07-10T16:43:23.813 回答