Android 应用程序开发和 Web 服务器交互

标签 android web-services

我刚刚开始学习 Android 开发,所以如果这在本质上有点偏离,请原谅。 我想制作一个与我网站上的数据库交互的应用程序,从某种意义上说,这两件事将互为补充。就这样。我想弄清楚什么是与我的服务器交互的最佳方式。我不想要一个在浏览器之类的环境中运行的应用程序,我想开发一个独立于站点工作的完整应用程序,仅共享数据库和类似功能。那么我最好的方法是什么?

正在构建应用程序,以便它可以发布/获取服务器上的 php 文件,基本上通过 JSON/XML 进行交互,我最好和/或最安全的选择,或者是否有更好的方法将应用程序连接到不需要的服务器数据库我将数据库打开到发出请求的任何 ip。

只是在这里寻找意见和建议。我想每个将要看到这个的人都熟悉 Android 开发和最佳实践,我也尽可能地浏览了博客和其他所有内容,但关于哪个最好的意见似乎是 50/50。

最佳答案

我确信 Android 有一些库可以帮助您进行 HTTP Get 和 Post,但是,如果您真的想了解发生了什么,那么您只需了解几个类即可必要的类(class)自己。

首先,了解 HttpClient、HTTPGet、HTTPPost 和 HTTPResponse。一些较新的 Android 版本也有一些不错的其他类,但这四个几乎是您入门所需的全部内容。

你需要做这样的事情:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://www.myurl.com/api_name");
HttpResponse response = client.execute(request);

如果您对此进行调试(当然是使用真实的 URL),您会注意到您的应用程序在 client.execute() 期间有点卡住。这是请求实际触发并且应用程序正在等待响应的时间点。一旦您真正获得响应,从中获取数据就不是很困难了。

一旦理解了这一点,您就会想要了解 AsyncTask,它对于执行后台任务非常有用。您可以在此处找到文档:http://developer.android.com/reference/android/os/AsyncTask.html在顶部有一个很好的例子说明如何使用它。

结合使用这两个概念,您可以执行异步 HTTP 请求。基本上,将实际的 HTTP 执行代码放在 AsyncTask 的 doInBackground 中。在 doInBackground 结束时返回您的响应,然后在 AsyncTask 的 onPostExecute 中对您的数据执行您想要的操作。

关于Android 应用程序开发和 Web 服务器交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9122841/

相关文章:

java - Unix 中的 Web 服务。目录结构应该是什么样的

c# - 为什么 ASP.NET session 的过期时间早于其超时时间?

java - 如何使用eclipse在本地部署rest服务,以及应该使用什么客户端

android - 带参数的导航组件 .popBackStack()

android - 在 android 工具栏中展开搜索 View 时将图标推开

java - 将 FrameLayout 转换为 Fragment

javascript - 主干解析 this.model.destroy

php - 保护 PHP 的 Web 服务

android - 如何找到35mm等效焦距?

java - Android:奇怪的银河标签行为