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

6
我有一个简单的Java客户端应用程序(Android应用程序)。我必须编写一个PHP服务器应用程序,该应用程序接收来自Java客户端应用程序的请求,以将一些数据写入MySQL数据库或从MySQL数据库读取一些数据。它应该分别响应状态消息(写入失败/成功)或所请求的数据。
如何让Java客户端发送请求并从PHP程序接收回复?PHP程序如何接收请求并发送回复?我已经搜索过SOAP和REST架构,但正在寻找一个简单的教程,使我能够实现这个简单的程序。
谢谢。
2个回答

6

使用基本的Java SE API,你可以使用java.net.URLConnection发送HTTP请求。在Sun教程中可以找到一个发送GET请求的基本示例。发送POST请求并没有太大区别,只需要将URLConnection#setDoOutput()设置为true,并将查询字符串写入URLConnection#getOutputStream()而不是URL中即可。

请注意它是"惰性执行"的,只有在你实际通过URLConnection#getInputStream()获取响应流时才会发出请求,即使你不需要它。
如果您想要更简洁的代码和/或更多对请求的控制,则我建议使用Apache Commons HttpComponents Client
PHP程序可以像往常一样编写。通过$_GET$_POST等获取请求参数,并echo响应。这里不需要特别处理。但您可以考虑使用更容易解析的响应格式,例如XML或JSON。

假设我们向接收 $_GET/$_POST 参数的 PHP 程序发送了 HTTP 请求,该程序经过一些处理,并想要回显一个字符串 "处理成功"。我只需要执行 echo $string,Java 程序就会在 URLConnection 的 InputStream 中接收到它了吗? - user245120
在运行教程中提供的脚本时,我遇到了错误,如页面https://dev59.com/vXE85IYBdhLWcg3w64IA所示,但我无法猜测原因。 - w2lame
以上问题的另一个解决方案可以在此处找到:http://dtmilano.blogspot.com/2008/11/android-testing-on-android-platform.html,但这仍然没有帮助我。 - w2lame

1

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

然后,使用Android SDK,你可以使用HttpClient模块连接到你的Web服务。SDK还提供了JSONXML模块来解析结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接