Android HTTP POST(密码安全和服务器响应)


Android HTTP POST (password security and response from server)

我正在开发一款Android应用程序,我面临的挑战是"验证"用户。所有用户都存储在SLQ数据库中(这是我网站上的应用程序,我有一些注册用户存储在SQL数据库中),我想这样做:

要求用户输入用户名和密码,加密密码,通过POST将用户名和密码发送到查询数据库的PHP类,如果用户和密码正确,则返回TRUE,否则返回FALSE。

浏览stackoverflow问题我学会了如何发送数据抛出POST(见下文),但我不知道如何从服务器接收布尔值(如果登录成功则为TRUE,如果登录失败则为FALSE)返回Android应用程序

有没有其他方法可以更容易或更好地完成这项工作?

谢谢!Marco:)

附言:这是从另一个问题粘贴的POST代码:

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();
        if(resEntity != null){
            Log.i("RESPONSE",EntityUtils.toString(resEntity));
        }
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 
Http协议旨在从远程服务器访问页面内容(文本)。因此php脚本应该生成一条消息,如"true"answers"false"、"0"answers"1"等,您必须在应用程序中检查这些消息。您可以使用例如:
String res = new String(response.getData());
if (res.equals("true"))
    ;//logged
else
    ;//not logged

在任何情况下,您要做的都是不安全的。想象一下,我可以将您的请求捕获到您的服务器。然后我可以简单地将true发送给您的申请。因此,您的应用程序将被授权执行您为注册用户所做的事情。

如果您仍在使用此应用程序,请阅读授权协议。