我需要创建一个如下所示的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->__getLastRequest()
打印完整的soap请求,因为它在发出请求之前返回致命错误。同样,我不能在var_dump()
上使用$resp
,因为它在执行该行之前就已经死了。我怎么知道实际发送的是什么?!如果我知道,那么我可以更轻松地调试它。
谢谢, 的 NS
答案 0 :(得分:11)
尝试类似的东西:
$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);