如何实现Java客户端应用程序(Android)和PHP服务器应用程序之间的通信?

我有一个简单的Java客户端应用程序(Android应用程序)。 我必须编写一个PHP服务器应用程序,它接收来自Java客户端应用程序的请求,将一些数据写入MySQL数据库或从MySQL数据库中读取一些数据。 它应该响应状态消息(写入失败/成功)或分别请求的数据。

我如何让Java客户端发送请求并从PHP程序接收回复?PHP程序将如何接收请求并发送回复? 我已经搜索了SOAP和REST架构,但是寻找一个简单的教程,这将允许我实现这个简单的程序。

谢谢。

使用基本的Java SE API,您可以使用java.net.URLConnection来触发HTTP请求。 触发GET请求的基本示例可以在关于该主题的Sun教程中找到。 POST请求没有太大区别,您只需将URLConnection#setDoOutput()true ,并将查询字符串写入URLConnection#getOutputStream()而不是URL。

请注意,它是“懒惰地执行”,只有在您实际通过URLConnection#getInputStream()获取响应流时才会触发请求,即使您不需要它。

如果您想要更少的详细代码和/或更多控制请求,那么我可以建议使用Apache Commons HttpComponents Client 。

反过来,PHP程序可以通常的方式编写。 通过$_GET$_POST等获取请求参数并echo显响应。 这里没有什么特别需要做的。 但是,您可以考虑使用更简单的可解析响应格式,例如XML或JSON。

您应该使用PHP构建一个简单的基于JSON或XML的REST Web服务。

然后使用Android SDK,您可以使用HttpClient模块连接到您的Web服务。 SDK还提供了一个JSON和XML模块来解析结果。