Мне нужно создать запрос 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()
потому что он возвращает фатальную ошибку перед выдачей запроса. Точно так же я не могу использовать var_dump()
для $resp
потому что он умирает до выполнения этой строки. Как я могу сказать, что на самом деле отправляется ?! Если я это знаю, тогда я могу легко отладить это.
Спасибо, нс
Попробуйте что-то вроде этого:
$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);