2017-03-23 106 views
0

我正在開發一個項目,其中還包括了Android應用程序。 有一個webapi調用來更新狀態,從應用程序端他們將發送id和狀態。 這裏我們可以只按順序更新狀態,即一旦狀態改變爲A,那麼只有它可以改爲B然後改爲C. 當網絡存在時它工作正常。但是我們有一個離線功能,其中如果三個狀態更新調用是在離線狀態下從應用程序完成的 - 它將在系統上線時一次發送所有這三個。在這種情況下,系統以其他順序發送請求,所以狀態更新沒有發生。 對於每個請求我發送確認 - Issuccess或不。 那麼有什麼辦法可以控制.Net端請求的順序?如果它可以從Android端進行控制,那麼如何呢? 我知道這可能是一個常用的場景,但我和我的同事對此很新,請給我們一個幫助。如何從Android側或asp.net webapi控制webapi請求序列?

+0

如果將狀態設置爲B取決於狀態是A,則不應該有三個調用。只有設置A並等待狀態被驗證。 –

回答

1

假設您的API是休息,這是不明智的跟蹤在.NET部分請求的順序(後端) 。它應該始終是無狀態的(即,總之,不應該跟蹤服務器端的請求和客戶端狀態)。

這就是說,你可以跟蹤你的狀態,並以正確的順序(用某種訂單索引)堅持它,或者將它推到應用程序的一個隊列機制,然後在應用程序返回時發送它在線保存訂單。如果它在線時工作正常,我不明白爲什麼這不起作用。

+0

謝謝!這裏離線的問題是 - 第一個將狀態更改爲'A'的請求將與其他一些數據一起出現,另外兩個是簡單的狀態更改請求。由於第一個請求需要更多時間,因此它正在執行最後在網上的情況下,這不會完全沒有問題。 – Sribin