如何让移动应用程序从网络服务器(PHP/MySQL *)获取数据并向其发出请求?
在 Android 上,您可以使用旧版本的Apache HTTP 客户端。因此,从您的应用程序向您的服务器发出 HTTP 请求的那一侧被覆盖:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("https://www.myserver.com/webservice/xyz");
HttpResponse response = client.execute(request);
只需 3 行代码,您就有了一个 GET 请求。
那么PHP和Android平台版本8(2.2 Froyo)支持什么样的webservice呢?
有多种不同的 Web 服务库可用于 PHP,例如 SOAP 和其他基于 XML 的协议。我个人不会这样做,因为 XML 很臃肿。您希望保持服务器和客户端之间传输的数据较小,因为您正在处理移动设备、有限的带宽和昂贵的数据计划。JSON 是 XML 的更紧凑的替代方案。您还可以创建自己的“二进制”数据格式,用于在服务器和客户端之间交换数据。
在 Android 端,您只需要为您选择的 Web 服务寻找合适的 Java 客户端库。或者,如果您寻求自定义解决方案,您只需自己编写代码。
有一个重要要求:它应该是安全的,
使用 HTTPS
通过要求应用程序进行身份验证,即只有应用程序能够访问数据。
除非您正在处理用户登录,否则这无法可靠地执行,那么可以。如果您确实需要您的用户登录,请查看 OAuth。
不要在您的客户端应用程序或服务器上存储纯文本密码。
如果您只想强制只有您的应用程序可以访问该 Web 服务,那么您可以在应用程序的 HTTP 请求标头中添加类似“客户端密码”字符串的内容。您的服务器将要求该秘密字符串存在,否则访问将被拒绝。
不过,这不会阻止人们查看您的应用程序以找出这个秘密。你可以通过混淆那个秘密字符串来让它变得更难一些,比如在字母周围随机混杂等等。
您还可以在每次重大更新时定期更改客户端密码。这将要求您的用户必须更新,否则他们将被锁定。