我正在开发一款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
}
}
String res = new String(response.getData());
if (res.equals("true"))
;//logged
else
;//not logged
在任何情况下,您要做的都是不安全的。想象一下,我可以将您的请求捕获到您的服务器。然后我可以简单地将true发送给您的申请。因此,您的应用程序将被授权执行您为注册用户所做的事情。
如果您仍在使用此应用程序,请阅读授权协议。