2012-09-24 75 views
0

當我的應用程序啓動時,我通過點擊服務url並將其保存在本地db中來接收xml。我已應用可達性代碼來檢查連接是否已關閉。如果它關閉,顯示警報,並且不會在用戶交互禁用時進一步繼續。但是,有時互聯網連接在獲得響應時變爲無法訪問。此時,用戶交互被啓用,因爲我得到響應但具有損壞的數據,這使得當我想使用xml中不存在的某些數據時,應用程序崩潰。我無法按照正確的方法處理此問題。檢查不完整的響應

請幫忙。

+0

是否有任何校驗和或驗證您收到的響應是否有效且可用的方法? –

+0

它的xml ...如果它被截斷,那麼它將不再是有效的xml文檔。所以在你做任何事之前解析/驗證xml。如果有語法錯誤,那麼它很糟糕,你關閉了。 –

回答

0

您需要驗證您收到的任何輸入。即使您始終保持網絡連接,您使用的服務始終有可能發送不完整或格式不正確的數據。您的具體做法取決於您,但有兩種選擇:

  • 驗證您從服務中收到的數據。當你收到你的XML數據時,你可能在將它存儲到本地數據庫之前解析它。這是一個很好的機會,可以注意到數據是不完整的,在這一點上,您可以決定能夠添加到數據庫的數據量(如果有)。

  • 從數據庫中檢索數據時驗證數據。在數據可能逐步流入的情況下,您可能希望在獲取數據後執行一些完整性檢查,以確保數據庫在繼續之前爲您提供了所需的一切。

+0

我解析了xml中的大約55個表。現在我應該在每次使用它們之前對每個表名應用檢查,還是隻使用根標記進行檢查? – user1693436