有一個用PHP編寫的現有網站。最初只有網站存在,但現在正在構建一個Android應用程序,可以從重新使用某些PHP邏輯中受益。根據PHP中的請求返回HTML或XML
PHP網站的結構使得有許多頁面執行一個動作,在$_SESSION
中設置成功/錯誤信息,然後重定向到一個可視化頁面,而不需要自己輸出任何內容。例如,有action_login.php
:
頁面接受用戶名和密碼(來自GET或POST變量),驗證憑證,在$ _SESSION中設置成功/失敗消息,然後在成功時重定向到登錄的主頁或回到登錄屏幕失敗。我們稱這種行爲爲「HTML迴應」。
Android應用程序需要調用相同的頁面,但不知何故告訴它它需要一個「XML響應」。當頁面檢測到這個時,它將以XML格式輸出成功/錯誤消息,而不是將它們放入$_SESSION
和不會重定向。無論如何,這是主意。這有助於防止重複的代碼。我不想讓action_login.php
和action_login.xml.php
浮動。
我讀過Accept Header不夠可靠(請參閱:Unacceptable Browser HTTP Accept Headers (Yes, You Safari and Internet Explorer))。我的備用解決方案是POST xml=1
或使用{url}?xml=1
進行GET請求。有沒有更好的辦法?
沒有框架被使用,這是普通的PHP。
...這可能會對android應用程序很好。我害怕的是不正確的瀏覽器,它們沒有正確使用標題並導致用戶看到一個xml文檔,而不是登錄主頁。 – colithium 2011-06-03 07:39:33
@colithium好,格式錯誤的請求是格式錯誤的請求。我能想到的另一個選擇是使用WURFL來檢測用戶代理。 – Gordon 2011-06-03 07:41:18
我添加了一個鏈接,說明WebKit做什麼,我害怕 – colithium 2011-06-03 07:44:32