2013-08-12 35 views
0

我在我的soapserver調用上有URL參數。呼喚 'mysoapserver.php?版本= 1' 運作良好,除了在這種情況下帶有URL參數的PHP soapserver

mysoapserver.php?WSDL &版本= 1

SoapServer的不輸出WSDL。

的代碼看起來像這樣

$version = isset($_GET['version']) ? $_GET['version'] : 1; 
switch($version) { 
    case 1: 
    $wsdl = 'myservices.v1.wsdl'; 
    break; 
case 2: 
    $wsdl = 'myservices.v2.wsdl'; 
    break; 
default: 
    throw new SoapFault('Server',utf8_encode('error')); 
    break; 
} 
$mysoapserver = new SoapServer($wsdl); 
$mysoapserver->setClass('SOAPServices'); 
$mysoapserver->handle(); 

任何想法如何得到這個工作?

+0

它不起作用,因爲v不是有效的SOAP請求。你應該爲你的SOAP服務設置兩個不同的端點 – tlenss

+0

如果你通過'?version = 1','$ _GET ['v']'永遠不會被設置... – naththedeveloper

+0

版本= 1是錯字。應該是v = 1 – tok

回答

0

我有同樣的問題,GET是空的。問題在於我正在閱讀我的服務內容。 問題是我們不能在服務器內部打印,因爲它是一個xml文件,我們嘗試它,它會返回我們的錯誤,那麼一個好的訣竅是這樣的。

$write = fopen("result.txt","w") or die("it doesnt exist"); 
//result.txt is in the root of the server 
fwrite($write, $_GET['version']); 
fclose($write); 

將結果保存在其他文件中。