2012-09-28 170 views
0

編寫登錄到服務器的android應用程序的最佳方式是什麼?我想我不想維護套接字,所以我想我想避免這種情況,我想我想使用http協議。我的問題是,在服務器端,理想情況下我想用PHP來處理來自android應用程序的GET/POST調用,但我不知道如何返回(使用PHP)我的應用程序可以處理的信息,不只是一個HTML文件。將Android應用程序連接到PHP服務器

因此,例如,android的facebook應用程序。當你第一次下載應用程序,你登錄,然後應用程序保持你的連接,但很明顯,該應用程序不是另一個Web瀏覽器,而是一個普通的應用程序,它的信息就像它是一個網站。應用程序如何傳遞會話cookie以便PHP $ _SESSION變量維護自己? Android應用程序如何處理返回的數據?

如果我向http://www.test.php發送獲取請求,那麼在服務器上執行的PHP代碼可以返回一組自定義的數據? $ _SESSION變量是否會自動維護?

謝謝

回答

3

您可以發送GET/POST請求登錄服務器。 PHP頁面可以返回JSON或XML。然後,您的Java(Android)代碼將不得不解析該響應。

您可以首先創建PHP頁面日誌,然後啓動會話。也許生成一個令牌密鑰並將其存儲在數據庫中,然後將其返回給android應用程序。 Android應用程序將獲得此令牌(解析後),並可能將其保存在首選項文件中。這種方法基本上是一個自定義會話。你將不得不弄清諸如令牌過期之類的東西等。

可能有一種方法可以存儲PHP會話,但不知道應用程序的行爲與瀏覽器的行爲有什麼不同。我認爲會話對於應用程序可能會更復雜一點。

更多的討論在這裏:php session destroyed in android application

+0

「將其保存在首選項文件」 - 這將是極其緩慢。 –

+0

你可以將它存儲在數據庫中,但是對於一個字符串它會使事情太複雜。 – rizalp1

+0

數據庫也很慢。 –

0

您只需要創建服務器端API接收和發送數據回客戶端。服務器啓動會話,請求API時,客戶端收到用於保持會話打開的PHPSESSID。在客戶端上,您使用Cookie進行會話。

閱讀有關會議:PHP Sessions (simple)Session Handling (comprehensive)

相關問題