我尝试使用post方法发送用户名/密码来登录网页。我成功地做到了,但我想要实现的是知道我是否成功登录(以Java编程)。我的方法是将html页面的源代码作为一个字符串,然后开始寻找单词" 登录为"确定日志记录过程是成功完成还是否成功。我尝试这样做并在Logcat中显示字符串,但字符串似乎太长而无法显示。
这甚至可能吗?如果是这样,这是实现所需要的唯一方法吗?
感谢。
答案 0 :(得分:0)
通常当你使用异步任务执行post http时,如果是这种情况,那么你需要覆盖一个名为onpostexecute的方法,它允许你进行处理。并将一个(通常是静态的)标志更改为知道用户现在已经登录。
答案 1 :(得分:0)
如果您使用ASyncTask进行网络呼叫,则可以返回一个字符串,该字符串将包含您尝试连接的服务器的响应。这一切都通过doInBackground()
在主线程上运行的onPostExecute()
函数中,您可以检查字符串是否包含成功登录和登录失败的文本。
if (login.contains("success") {
textView.setText("You have logged in");
else if (login.contains("failed") {
textView.setText("Login failed, please try again later");
你做的HttpPost应该从服务器返回一些东西。您可以根据需要随意提供信息。最好的方法是让服务器返回一个可以解析的JSON响应,然后获取详细信息
答案 2 :(得分:0)
当您的Android应用程序将数据发送到服务器时,服务器应该发回响应。
JSON
格式现在非常普遍。
PHP
是处理数据和响应的好工具。
这是一个关于如何做到这一点的例子
$response = array();
if($LoginSuccessfull){
$response = array('success'=> true, 'message'=> 'logged in successfully';
}else{
$response = array('success'=> false, 'message'=> 'loggin failure';
}
echo json_encode($response);
答案 3 :(得分:0)
从您的httpClient,您可以检查是否已设置cookie(假设您使用cookie来验证您的用户),您将从此代码中获取Cookie列表:
List<Cookie> cookies = client.getCookieStore().getCookies();
并检查cookie是否存在