0

我有一个关于 php 和 soap 调用的问题。我必须用两个参数调用一个soap函数:sessionId和Targa 首先我准备了我的paramArray,如下所示:

$targaParam = array(
    'sessionId' => $session,
    'Targa' => 'EG031NX'
    );

有一个错误,所以我阅读了 wsdl:

<s:element name="GetRTCompletoDaTargaMinInfocarList">
   <s:complexType>
      <s:sequence>
         <s:element minOccurs="0" maxOccurs="1" name="sessionId" type="s:string"/>
         <s:element minOccurs="0" maxOccurs="1" name="context" type="tns:RTDaTargaParamContext"/>
      </s:sequence>
   </s:complexType>
</s:element>

所以我改变了我的数组:

$targaParam = array(
    'sessionId' => $session,
    'context' => 'EG031NX'
    );

没有错误,但如果我打印调用结果,我有一个Object reference not set to an instance of an object.

'context'元素的类型是RTDaTargaParamContext,我贴上代码:

<s:complexType name="RTDaTargaParamContext">
   <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Targa" type="s:string"/>
   </s:sequence>
</s:complexType>

我必须改变将参数传递给函数的方式吗?

4

1 回答 1

0

解决方案:

$targaParam = array(
  'sessionId' => $session,
  'context' => array('Targa' => 'EG031NX')
);
于 2013-04-02T14:58:36.997 回答