2010-02-13 94 views
6

我有一個簡單的Java客戶端應用程序(Android應用程序)。我必須編寫一個PHP服務器應用程序,它接收來自Java客戶端應用程序的請求,將一些數據寫入MySQL數據庫或從MySQL數據庫讀取一些數據。它應該分別響應狀態消息(寫入失敗/成功)或請求的數據。如何實現Java客戶端應用程序(Android)和PHP服務器應用程序之間的通信?

如何我會得到Java客戶端發送請求並接收來自PHP程序的答覆,以及如何將PHP程序接收請求和發送應答?我已經搜索了關於SOAP和REST架構,但尋找一個簡單的教程,這將允許我實現這個簡單的程序。

謝謝。

回答

6

基本的Java SE API,你可以使用java.net.URLConnection火一個HTTP請求。發出GET請求的基本示例可在Sun tutorial on the subject中找到。 A POST請求沒有多大區別,您只需將URLConnection#setDoOutput()設置爲true並將查詢字符串寫入URLConnection#getOutputStream()而不是URL中。

請注意,它是「懶惰執行」的,只有當您實際獲得URLConnection#getInputStream()的響應流時纔會觸發該請求,即使您不需要它。

如果你想更簡潔的代碼和/或在要求更多的控制,那麼我可以推薦使用Apache Commons HttpComponents Client

PHP程序反過來可以寫成通常的方式。通過$_GET,$_POST等和echo獲取請求參數的響應。這裏沒有特別的需要做。但是,您可能會考慮使用更易於解析的響應格式,例如XML或JSON。

+0

讓我們假設我們已經發出一個HTTP請求到收到$ _GET/$ _ POST參數,做了一些處理,並要回顯一個字符串「處理成功的」 PHP程序。我只是簡單地執行echo $ string並且Java程序會在URLConnection的InputStream中接收它? – user245120 2010-02-14 00:56:54

+1

這是正確的。 – BalusC 2010-02-14 01:17:12

+0

在運行教程中提供的腳本時,我遇到了頁面http://stackoverflow.com/questions/2543106/fatal-error-by-java-runtime-environment上給出的錯誤,但我無法猜測原因相同。 – w2lame 2010-11-08 12:42:55

1

您應該使用PHP構建一個簡單的基於JSON或XML的REST Web服務。

然後在Android SDK中,您可以使用HttpClient模塊連接到您的網絡服務。該SDK還提供JSONXML模塊來解析結果。

相關問題