2017-05-26 52 views
0

我得叫肥皂,用這種結構(與SOAPUI獲得):SOAP客戶端參數不會工作

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
xmlns:v3='http://v3.ws.server.ldap.ws.xxx/' 
xmlns:cod='http://server/Usr/codeUsr'> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <v3:getUsr> 
     <cod:codeUsr>P012997</cod:codeUsr> 
     </v3:getUsr> 
    </soapenv:Body> 
</soapenv:Envelope> 

客戶端是: $客戶端=新SoapClient的( 「http://xxx.xxx.xxx.xxx:8080/ws-ldap3/wServiceV3?wsdl」);

到目前爲止,我想:

echo "a(TT).<br/>";var_dump($client->getUsr('P012997')); 
echo "b(TT).<br/>";var_dump($client->getUsr(array('cod' => 'P012997'))); 
echo "c(TT).<br/>";var_dump($client->getUsr(array('codeUsr' => 'P012997'))); 
echo "d(TT).<br/>";var_dump ($client->__soapCall('getUsr', array('parameters' => array('cod' => 'P012997')))); 
echo "e(TT).<br/>";var_dump ($client->__soapCall('getUsr', array('parameters' => array('codeUsr' => 'P012997')))); 
echo "f(TT).<br/>";var_dump ($client->__soapCall('getUsr', array('cod' => 'P012997'))); 
echo "g(TT).<br/>";var_dump ($client->__soapCall('getUsr', array('codeUsr' => 'P012997'))); 

沒有成功。我怎樣才能傳遞參數codeUsr?

TIA,

+0

這應該工作var_dump($ client-> getUsr(array('codeUsr'=>'P012997')));你有什麼錯誤嗎?什麼是迴應? –

+0

感謝您的回覆。該方法返回所有用戶 - 當參數不正確時,您建議(c)嘗試。它沒有奏效。 –

+0

我知道這是C的嘗試,但我想知道PHP和soapui的實際響應,我有一個類似的問題,我建議你開始考慮可能有錯誤的Web服務,因爲這應該很好。 –

回答

0

我終於用CURL解決了問題(不是這種情況)。我根據需要準確發送XML。

$xml="<same as before>"; 
$sDo = curl_init(); 
curl_setopt($sDo, CURLOPT_URL, "http://xxx.xxx.xxx.xxx:8080/ws-ldap3/wServiceV3?wsdl"); 
curl_setopt($sDo, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($sDo, CURLOPT_TIMEOUT, 10); 
curl_setopt($sDo, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($sDo, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($sDo, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($sDo, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($sDo, CURLOPT_POST, true); 
curl_setopt($sDo, CURLOPT_POSTFIELDS, $xml); 
curl_setopt($sDo, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=utf-8", "Content-Length: " . strlen($xml))); 
$result = curl_exec($sDo); 

發佈它,以防其他人有瓶頸,不能花幾天時間來設法使其工作。