2017-08-21 14 views
0

私はを使用してSOAPメソッドを呼び出そうとしています。XMLボディでPHPを使用してSOAP呼び出しの応答を取得する方法 - SOLVED

ここで私が持っているコードです:

$wsdl = 'LINK/RHOWS_RS_REQUISICAO?wsdl'; 
$options = array('login' => 'MYLOGIN','password' => 'MYPASS'); 

$xml = <<<EOT 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rhow="http://xmlns.oracle.com/orawsv/RHOWS/RHOWS_RS_REQUISICAO"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <rhow:RHOWS_RS_REQUISICAOInput> 
     <rhow:P_IDENTIFICACAO-VARCHAR2-IN>ASDASDADASDA</rhow:P_IDENTIFICACAO-VARCHAR2-IN> 
     <rhow:P_RESULT-XMLTYPE-OUT/> 
     </rhow:RHOWS_RS_REQUISICAOInput> 
    </soapenv:Body> 
</soapenv:Envelope> 
EOT; 

//echo $wsdl; 
$client = new SoapClient($wsdl, $options); 

今、私は、要求に印刷をしたいと思いますが、何も表示されません:

$body = new SoapVar($xml,XSD_ANYXML); 
    **$result = $client->RHOWS_RS_REQUISICAO($body);** 
    print $client->__getLastRequest()."\n"; 
    print $client->__getLastResponse()."\n"; 

を私は

var_dump($client->__getFunctions()); 
を置くが、

end it's return S:

array(1) { [0]=> string(83) "RHOWS_RS_REQUISICAOOutput **RHOWS_RS_REQUISICAO**(RHOWS_RS_REQUISICAOInput $parameters)" } 

だからあなたは(あなたが特定のWSDL定義にSOAPクライアントを構成し、SOAPのWebサービスを呼び出していませんでしたあなたのコードでは

$result = $client->RHOWS_RS_REQUISICAO($body); 

が、北上..

+0

ブラウザでwsdlページに移動し、 Webサービス** RHOWS_RS_REQUISICAO ** このWebサービスを特定のタイプのパラメータで呼び出す必要があると思います。 – Mcsky

答えて

0

を使用しましたwsdlのURLをあなたのブラウザにコピーすることもできます。これを試してみてください:

$client->__getFunctions(); 

このWSDL定義次に

のためのすべての機能を一覧表示するにはこの後、このようで

$response = $client->someFunction($foo, $bar); 

を利用できる関数を呼び出すので、あなたは、この関数の戻りを持つべきであるあなたの石鹸クライアントが実際にリクエストを出しました

print $client->__getLastRequest()."\n"; 
print $client->__getLastResponse()."\n"; 
+0

var_dump($ client - > __ getFunctions()); ($ body)$ result = $ client-> RHOWS_RS_REQUISICAO($ body);これで、$ result = $ client-> RHOWS_RS_REQUISICAO($ body)が使用されました。北に見せているわけではない... –

関連する問題