2017-07-27 7 views
0

このメソッドには名前にポイントが含まれていて、エラー(DB.GetDocListIden)が表示されますが、このメソッドの名前を指定する正しい方法は何ですか?SOAP PHPメソッド名にドット文字が含まれています

$ result = $ client-> DB.GetDocListIdent($ params);

$wsdl = 'productos.wsdl'; 
 

 
try { 
 
    $client = new SoapClient($wsdl); 
 
    $params = ['user' => 'user', 'password' => 'pass']; 
 
    $result = $client->DB.GetDocListIdent($params); 
 
    $productsArray = $result->GetDocListResult->row; 
 

 
    var_dump($productsArray); 
 

 
    foreach($productsArray as $product){ 
 
     echo '<strong> producto: </strong>' . $product->ItemName; 
 
     echo '<br><br>'; 
 
    } 
 
} catch (SoapFault $fault) { 
 
    echo "Fault code: {$fault->faultcode}" . '<br>'; 
 
    echo "Fault string: {$fault->faultstring}" . '<br>'; 
 
    if ($client != null) { 
 
     $client = null; 
 
    } 
 
    exit(); 
 
} 
 
catch(Exception $ex){ 
 
    echo $ex->getMessage(); 
 
} 
 
$client = null;

+0

この方法は、あなたのcode'の外と呼ばれるか、 'アクセスすることができますか?つまり、SOAクライアント(Firefox)などのサードパーティ製ツールを使用してメソッドを確実に呼び出すことができますか?それ以外の場合は、Webサービスの作成者/開発チームに連絡し、可能であればユーザーのドキュメントを尋ねることもできます。最後に(それが動作するかどうかわからない)、 "DB"を削除してみてください。メソッド名の一部。 –

+0

「GetDocListIdent」が存在することはありませんでした。あなたはその機能をどこで見つけましたか? –

+0

私はこれをDuck Duck Goで見つけました。 PHPには 'call_user_func'があり、メソッド名を{と}の中に二重引用符で囲むことでメソッド呼び出しを書き直す便利な方法もあります。コードを '$ result = $ client - > {" DB.GetDocListIdent "} - >($ params);'ソース:https://stackoverflow.com/questions/771036/php-equivalent-of-sendに変更します-and-getattr –

答えて

0

あなたが__soapCallを使用することができ、例:

$client = new SoapClient(''); 
$client->__soapCall("DB.function", [args]); 
関連する問題