我有一些代碼通過SOAP連接到時事通訊服務。它在我們的開發服務器上沒有問題,但在我們的活動服務器上它根本不起作用。它不會返回任何錯誤;只是一個空白的白頁。我已經將一些error_logs放入代碼中,並發現它在哪裏停止工作 - 在創建新SoapClient的行上。是否需要設置某種服務器配置?我們的代碼在dev和prod之間是相同的,所以我唯一可以確定的是服務器問題。 (請注意,下面由通訊服務提供的代碼的第一塊,不是我寫的。)PHP SoapClient不工作 - 沒有錯誤
# bronto API session/connection setup
ini_set("soap.wsdl_cache_enabled", "0");
date_default_timezone_set('America/Chicago');
$wsdl = "https://api.bronto.com/v4?wsdl";
$url = "https://api.bronto.com/v4";
/*error log statements up to this point return what is expected;
an error log after the following line (starting with $client = new SoapClient)
does not get triggered at all. */
$client = new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8'));
$client->__setLocation($url);
$token = "XXX";
$sessionId = $client->login(array("apiToken" => $token))->return;
$client->__setSoapHeaders(array(new SoapHeader("http://api.bronto.com/v4",
'sessionHeader',
array('sessionId' => $sessionId))));
我也試着像這樣明確地看到任何錯誤,但沒有運氣 - 仍然沒有在錯誤日誌。
try {
$client = @new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8'));
}
catch (SoapFault $E) {
error_log($E->faultstring) ;
}
error_log("ok");
我會在dev服務器上檢查已安裝的PHP軟件包,並與Prod服務器進行比較。 http://fr2.php.net/manual/en/soap.setup.php – 2011-05-27 15:30:44
打開error_reporting。一個「白色屏幕」通常意味着PHP嘔吐,並已設置爲隱藏所有錯誤,所以你什麼也得不到。另外,如果PHP已經配置完成,請檢查服務器(和/或php的)錯誤日誌,看看裏面是否有任何東西。它可能不會在瀏覽器中吐出錯誤消息,但它們可能會在某處登錄。 – 2011-05-27 15:31:11
@菲爾,謝謝。我只是這樣做,並且感到驚訝!我們的現場(託管)服務器根本沒有安裝SOAP!如果你想把這個評論轉換成答案,我會接受它,所以你得到了信用。 – EmmyS 2011-05-27 15:38:23