【问题标题】:SOAP-ERROR: Encoding: Object has no propertySOAP-ERROR:编码:对象没有属性
【发布时间】:2012-08-05 16:12:55
【问题描述】:

我需要创建一个如下所示的 SOAP 请求:

<soapenv:Body>
<getItemsForProject>
   <token>
      <user>?</user>
      <password>?</password>
   </token>
   <projectId></projectId>
   <start>0</start>
   <count>0</count>
</getItemsForProject> 
</soapenv:Body>

操作需要这样:

[209] => struct getItemsForProject {
 wsAuth token;
 long projectId;
 int start;
 int count;
}

我尝试了以下方法,但一直点击PHP Fatal error: SOAP-ERROR: Encoding: object has no 'start' property

我知道令牌对象可以这样创建,因为我已经将它用于另一个操作:

$auth->token = new \stdClass;
$auth->token->user = $username;
$auth->token->password = $password;

但是,对“start”参数执行类似操作会失败并显示致命错误消息。以下是部分代码:

$opts = new \StdClass;
$opts->projectId = 123;
$opts->start = 0;
$opts->count = 0;

$resp = $soap->getItemsForProject($auth, $opts);       

echo $soap->__getLastRequest() ."\n";

我无法使用$soap-&gt;__getLastRequest() 打印完整的soap 请求,因为它在发出请求之前返回了致命错误。同样,我不能在$resp 上使用var_dump(),因为它在执行该行之前就死了。我怎么知道实际发送的是什么?!如果我知道这一点,那么我可以更轻松地调试它。

谢谢, ns

【问题讨论】:

    标签: php web-services soap soap-client


    【解决方案1】:

    尝试类似的东西:

    $myClass->token = new \stdClass;
    $myClass->token->user = $username;
    $myClass->token->password = $password;
    
    $myClass->projectId = 123;
    $myClass->start = 0;
    $myClass->count = 0;
    
    
    $resp = $soap->getItemsForProject($myClass);       
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2019-10-18
      相关资源
      最近更新 更多