2013-07-25 56 views
2

我正在研究新的SOAP Web服務。遇到錯誤時,以前的Web Service用於返回array('error'=>"Please login first");。從我讀過的內容來看,它更好地使用SoapFault。PHP Soap服務器中的SoapFault(錯誤處理)

下面一行是用來調用的SOAPFault:

throw new SoapFault($faultcode, $faultstring, $faultactor, $faultdetail, $faultname, $headerfault); 

我看到肥皂已預先定義的代碼,即:VersionMismatch,mustUnderstand屬性,客戶端和服務器。

請幫助我瞭解回答/修正如下:

  1. 我可以用我自己的自定義faultcodes像「驗證」或「Error55」。
    1. 有些使用數組(「namespace」,「errorcode」)。應該用這個而不是?命名空間的價值應該是什麼?
  2. 我認爲faultstring可以是任何用戶喜歡的「請先登錄」。
  3. faultactor的用途是什麼?
  4. faultdetail是包含故障的額外細節的數組。什麼樣的細節?
  5. faultname的用途是什麼?
  6. headerfault的目的是什麼?

回答

1

我相信通常不會在單個SO問題中提出多個問題。此外,大部分內容將通過閱讀the SOAP spec的第4.4節「SOAP Fault」得到解答。

  1. 的faultcode

    faultcode元素是用於通過軟件的使用,以用於識別故障提供一種 算法機制。在SOAP Fault元素中必須存在錯誤代碼 ,並且錯誤代碼值必須是 限定名稱,如第3節中定義的。SOAP定義包含基本SOAP錯誤的SOAP錯誤代碼的小集合 ...名稱空間標識符 for [默認] faultcode值是「http://schemas.xmlsoap.org/soap/envelope/

  2. faultstring

    的faultstring元素的目的是提供故障的人類可讀 說明,並且不旨在對算法 處理。

  3. faultactor

    「的faultactor元素是提供有關誰 引發故障的消息路徑中發生的信息(見第2節),這 類似於SOAP actor屬性(見第4.2節。2),而是指示標題條目的目的地的 ,它指示 故障的來源。 faultactor屬性的值是標識源的URI 。不作爲SOAP消息的最終目標地址的應用程序必須在 中包含SOAP Fault元素中的faultactor元素。一個消息的最終目的地可以使用 的faultactor元素明確地表明它產生的 故障(也參見下面的詳細元素)。」

  4. faultdetail是一個字符串,不是一個數組,並且應該包含涉及Body元素

應用特定的錯誤信息

相關問題