2016-08-11 5 views
2

私はちょっと混乱していることを認めます。これは私の試みだったphp(オブジェクトを追加する)のこのSOAP要求は何ですか?

public void LogAdminIn() 
{ 
    CxSDKWebServiceSoapClient cxSDKProxy = new CxSDKWebServiceSoapClient(); 
    CxWSResponseLoginData loginResult = cxSDKProxy.Login(new Credentials() { User = "[email protected]", Pass = "admin" }, 1033); 
sessionID = loginResult.SessionId; 
} 

$client = new SoapClient($ServiceURL); 
$param = array(
    'User' => $login, 
    'Pass' => $password, 
    'lcid' => "1033" 
); 
$result = $client->Login(new SoapParam ($param, "Credentials")); 
var_dump($result); 

しかし、私は持っている - 私は、PHPのコール(https://checkmarx.atlassian.net/wiki/display/KC/Initiating+a+SessionそれはCheckmarxと統合することである)に(.NET、私は推測)SOAPの下に変換する必要がありますそれは実際には正しい(それは動作しないので、私はそうではないと思います)信頼はありません。

私は構造を推測していますが、何をすべきかについては混乱しています。

答えて

0

php.iniファイルで石鹸を有効にしましたか?

extension=php_soap.dllを削除します。

と、スクリプトに追加します。

ini_set('display_errors', 1); 
error_reporting(E_ALL); 
ini_set('soap.wsdl_cache_enabled', '0'); 
ini_set('soap.wsdl_cache_ttl', '0'); 

をそして、あなたにもいくつか試してキャッチを必要とする:

try { 
    $client = new SoapClient("some.wsdl"); 
    $result = $client->SomeFunction(/* ... */); 
} catch (SoapFault $fault) { 
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); 
} 

はそれを確認し、多分あなたは、いくつかのヒントを持っています:)

+0

この石鹸一部が作業を行い、それを接続し、SOAPサービスはエラーを返します - それは一般的なエラーであると言いますと、それは権限に関連しているように見えます。私は、パラメータを正しくフォーマットしていない、新しいSoapParamビットを見ています。私はそれを正しくやっているのか分からない。 – mozman2

0

に見えますLogin()メソッドのように、Credentials構造体と整数の2つのパラメータが必要です。あなたはわずかなものに変更する必要があります。

$credentials = array('User' => $login, 'Pass' => $password); 
$lcid = 1033; 
$result = $client->Login($credentials, $lcid); 

問題が解決しない場合、あなたはまた、オブジェクト$資格証明書を作ってみることができます:

$credentials = new stdClass(); 
$credentials->User = $login; 
$credentials->Pass = $password; 
$lcid = 1033; 
$result = $client->Login($credentials, $lcid); 

呼び出しを行った後、それを検査すると便利です実際のXMLの呼び出しと要求が適切であることを確認してくださいは:

var_dump($client->__getLastRequest()); 
関連する問題