Php Android HTTP POST(密码安全和服务器响应)
我正在开发一个Android应用程序,我的挑战是对用户进行“身份验证”。 所有用户都存储在SLQ数据库中(是我网站上的应用程序,我有一些注册用户存储在SQL数据库中),我想这样处理: 要求用户输入用户名和密码,加密密码,通过POST将用户名和密码发送到一个PHP类,该类查询数据库,如果用户和pass正确,则返回TRUE,否则返回FALSE 浏览stackoverflow问题时,我学会了如何将数据发送到Android应用程序(见下文),但我不知道如何从服务器接收布尔值(如果登录,则为TRUE;如果登录失败,则为FALSE) 有没有其他方法更容易或更好地完成这项工作 谢谢大家!! 马可:) PS:这是从另一个问题粘贴的邮政编码:Php Android HTTP POST(密码安全和服务器响应),php,android,post,Php,Android,Post,我正在开发一个Android应用程序,我的挑战是对用户进行“身份验证”。 所有用户都存储在SLQ数据库中(是我网站上的应用程序,我有一些注册用户存储在SQL数据库中),我想这样处理: 要求用户输入用户名和密码,加密密码,通过POST将用户名和密码发送到一个PHP类,该类查询数据库,如果用户和pass正确,则返回TRUE,否则返回FALSE 浏览stackoverflow问题时,我学会了如何将数据发送到Android应用程序(见下文),但我不知道如何从服务器接收布尔值(如果登录,则为TRUE;如果
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
}
}
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.yoursite.com/script.php");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
添加(新的BasicNameValuePair(“stringdata”、“Hi”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
HttpEntity当前性=response.getEntity();
if(最近性!=null){
Log.i(“响应”,EntityUtils.toString(resEntity));
}
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}
Http协议旨在从远程服务器访问页面内容(文本)。所以php脚本应该生成一条消息,比如“true”和“false”、“0”和“1”,等等,您必须在应用程序中检查这些消息。例如,您可以使用:
String res = new String(response.getData());
if (res.equals("true"))
;//logged
else
;//not logged
在任何情况下,你要做的都是不安全的。想象一下,我可以将您的请求捕获到您的服务器。然后我可以简单地将true发送到您的应用程序。因此,您的应用程序将被授权为注册用户执行您拥有的操作 如果您仍在使用此应用程序,请阅读授权协议