7

次のような 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;

ただし、「開始」パラメーターに対して同様のことを行うと、致命的なエラー メッセージが表示されて失敗します。コードの一部を次に示します。

$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()on は使用できません。$resp実際に送信されているものをどのように確認できますか?! それがわかれば、これをより簡単にデバッグできます。

ありがとう、 ns

4

1 に答える 1

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);       
于 2012-08-08T14:28:27.953 に答える