Я пытаюсь связаться с TargetProcess через их сервисы Soap.Когда я делаю простой запрос, такой как «чтение», это работает.
Например
// Some code...
$client = soapclientnusoap(path to my service...);
$client->call("RetrieveAll");
// Get nice results...
Далее .. когда я пытаюсь выполнить более сложную операцию, она тоже работает ...
// Some code...
$client = soapclientnusoap(path to my service...);
$params = array("Name"=>"Sample project");
$client->call("CreateProject", $params);
// Get nice results...
Она тоже работает..
ОДНАКО, когда я делаю вложенные массивы, происходит сбой
// Some code...
$client = soapclientnusoap(path to my service...);
$params = array('entity'=>
array("Name" => "Bug name")
);
$client->call("CreateBug", $params);
// Error..
Единственное отличие состоит в том, что основные команды не имеют параметров или имеют один уровень параметров, а последнийу каждого есть вложенные параметры.
Есть какие-нибудь подсказки? !!!
Спасибо.
Это моя ошибка [faultstring] => Серверу не удалось прочитать запрос.---> В документе XML есть ошибка.---> Входная строка была в неправильном формате.
И это запрос (заголовки удалены)
<SOAP-ENV:Body><Create xmlns="http://targetprocess.com"><entity><ID/><BugID/><Name>TEST Bug</Name><Description>Some words about the bug</Description><StartDate/><EndDate/><CreateDate>2011-02-11T17:57:21</CreateDate><ModifyDate/><LastCommentDate/><NumericPriority/><Effort/><EffortCompleted/><EffortToDo/><TimeSpent/><TimeRemain/><LastCommentUserID/><OwnerID/><LastEditorID/><EntityStateID/><PriorityID/><ProjectID>131</ProjectID><IterationID/><ParentID/><ReleaseID/><SeverityID/><BuildID/><UserStoryID/></entity></Create></SOAP-ENV:Body></SOAP-ENV:Envelope>
Примечания:
Я использую последнюю версию Nusoap на php5.2, это означает, что мне пришлось переименовать soapclient из nusoap, tu soapclientnusoap.
Я не могу использовать нативный php5 SoapClient, потому что служба, к которой я обращаюсь, запрашивает некоторые заголовки и, честно говоря, я уже потратил 5 часов и не смог сгенерировать заголовки, как ожидалось.. возможно, мне следует сосредоточиться на этом, но я не могу думать о том, что еще делать, поэтому я застрял с Nusoap.