Android:如何发送安全请求并获取PHP网站的响应?

时间:2012-07-16 16:23:48

标签: php android service web

我正在为一家用户正在寻找房屋租赁的企业工作。 这些可以通过我们的网站查看。

我希望创建一个Android应用程序,以帮助人们在智能手机上找到房屋。如何让移动应用程序从Web服务器(PHP / MySQL *)获取数据并向其发出请求?

这不是Web服务的定义吗?那么PHP和Android平台版本8(2.2 Froyo)支持哪种Web服务?

有一个重要的要求:它应该是安全的,要求应用程序进行身份验证,即只有应用程序才能访问数据。

*支持Python 2.6.6。我真的很喜欢Python,但我不想混合服务器语言,因为100%的网站是用PHP编写的。

2 个答案:

答案 0 :(得分:2)

  

如何让移动应用程序获得   来自网络服务器(PHP / MySQL *)的数据并向它发出请求?

在Android上,您可以使用旧版Apache HTTP Client。因此,该方面可以从您的应用向您的服务器发出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。支持webservice)   Froyo的)?

有一个variety of different web-service libraries可用于PHP,如SOAP和其他基于XML的协议。就个人而言,我不会那样做,因为XML很臃肿。您希望在服务器和客户端之间保持较小的传输数据,因为您正在处理移动设备,有限的带宽和昂贵的数据计划。 JSON是XML的一种更紧凑的替代方案。您还可以创建自己的“二进制”数据格式,以便在服务器和客户端之间交换数据。

在Android方面,您只需要为您选择的Web服务寻找合适的Java客户端库。或者,如果您选择自定义解决方案,您只需自己编写代码即可。

  

有一个重要的要求:它应该是安全的,

使用HTTPS

  

要求   应用程序的身份验证,即只有应用程序   能够访问数据。

除非您正在处理用户登录,否则无法可靠地执行,然后是。如果您确实要求用户登录,请查看OAuth。

不要在客户端应用程序或服务器上存储纯文本密码。

如果您只想强制执行只有您的应用可以访问该Web服务,那么您可以在应用的HTTP请求标头中添加类似“客户端密码”字符串的内容。您的服务器将要求存在密码字符串,否则将拒绝访问。

但这不会阻止人们查看你的应用程序以找出这个秘密。你可以通过混淆那个秘密字符串来使它变得更难,就像在字母周围随意乱窜等等。

您还可以定期更改每个主要更新的客户端密钥。这将要求您的用户进行更新,否则他们将被锁定。

答案 1 :(得分:0)

您可能需要考虑实现一个函数来在PHP应用程序中查询Android应用程序中的JSON数据(如json-simple),并在服务器中查找一个检索GET请求的方法(查看编辑内容$ _GET和然后再发回JSON

您可以使用XML,纯文本或其他任何东西,但JSON可能是最小的,也是最快的。