2010-06-23 36 views

回答

0

簡而言之,這對於SoapServer類來說是不可能的。

當前的實現會在生成XML文檔時檢查參數的有效性(以確保不會發送瘋狂的無效SOAP參數)。

雖然有可能實現你在擴展中要求的東西,但我會是一個重大的改變,因爲它必須在參數上循環兩次,一次檢查有效性(以便他們可以扔肥皂故障),然後再次序列化到客戶端。

這也是可能在您的PHP腳本中的userland中實現此操作,但這需要您手動序列化所有響應數據(因爲內置類不會向您公開此功能)。如果您控制請求的兩端(客戶端和服務器),並且不需要利用服務器庫提供的​​任何「高級」soap功能,則這不是一個糟糕的選項。

爲此,您只需發送一個標準的SOAP XML標頭,然後在將數據直接寫入客戶端時將其轉換爲XML。

+0

soap擴展可以接收流而不是字符串,然後從流中讀取,編碼併發送到客戶端,直到流結束。我不知道它會有多難(我不熟悉代碼庫),但我沒有得到你的雙循環參數。 – Artefacto 2010-06-23 19:07:33

+0

問題在於庫無法及時檢測到編碼錯誤(即將響應轉換爲SOAP錯誤),因爲它已經發送了輸出和標題。一個soap故障應該發送一個500狀態代碼,如果它在結果中驗證了所有參數之前開始發送輸出,它就無法做到這一點。 – 2010-06-23 19:41:01