当前位置: 首页 > 知识库问答 >
问题:

Android登录验证和活动重定向错误

商柏
2023-03-14

我想重定向我当前的活动到另一个活动后成功登录,我使用Php-MySQL数据库。我不能使用静态关键字登录,比如username=“admin”&&password=“admin”。

package helloworld.krish.com.login2;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

import static android.support.v4.content.ContextCompat.startActivity;

public class BackgroundWorker extends AsyncTask <String, Void, String > {
        Context context;
        AlertDialog alertDialog;
        BackgroundWorker (Context ctx) {
                context = ctx;
        }
        boolean statusOk = false;

    @Override
    protected String doInBackground(String... params) {
        String type = params[0];
        String login_url = "http://192.168.0.106/login.php";
        String reg_url = "http://192.168.0.106/register.php";

        System.out.println(1);

        //Login Function

        if(type.equals("login")) {
            try {
                String user_name = params[1];
                String password = params[2];

                URL url = new URL(login_url);
                HttpURLConnection htpurl = (HttpURLConnection)url.openConnection();
                System.out.println(2);
                htpurl.setRequestMethod("POST");
                htpurl.setDoInput(true);
                htpurl.setDoOutput(true);
                System.out.println(3);
                OutputStream outputStream = htpurl.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                String Post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&"
                        +URLEncoder.encode("enter code herepassword","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
                System.out.println(4);
                bufferedWriter.write(Post_data);
                System.out.println(5);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();

                //response for post request//
                System.out.println(6);

                InputStream inputStream = htpurl.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                String result = "";
                String line = "";

                System.out.println(6.5);
                while((line = bufferedReader.readLine())!= null){
                        System.out.println(7);
                        result += line;
                    }
                bufferedReader.close();
                inputStream.close();
                htpurl.disconnect();
                System.out.println(7.5);
                return result;

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //Register Activity

        else if (type.equals("register")){
                try {
                    String name = params[1];
                    String designation = params[2];
                    String salary = params[3];
                    String cont = params[4];

                    URL url = new URL(reg_url);
                    HttpURLConnection htpurl = (HttpURLConnection)url.openConnection();
                    System.out.println(2);
                    htpurl.setRequestMethod("POST");
                    htpurl.setDoInput(true);
                    htpurl.setDoOutput(true);
                    System.out.println(3);
                    OutputStream outputStream = htpurl.getOutputStream();
      //Main Code for Register//
                    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                    String Post_data = URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"
                            +URLEncoder.encode("designation","UTF-8")+"="+URLEncoder.encode(designation,"UTF-8")
                            +"&"+URLEncoder.encode("salary","UTF-8")+"="+URLEncoder.encode(salary,"UTF-8")
                            +"&"+URLEncoder.encode("cont","UTF-8")+"="+URLEncoder.encode(cont,"UTF-8");
                    System.out.println(4);
                    bufferedWriter.write(Post_data);
                    System.out.println(5);
                    bufferedWriter.flush();
                    bufferedWriter.close();
                    outputStream.close();

                    //response for post request//
                    System.out.println(6);

                    InputStream inputStream = htpurl.getInputStream();
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                    String result = "";
                    String line = "";
                    System.out.println(6.5);
                    while((line = bufferedReader.readLine())!= null){
                        System.out.println(7);
                        result += line;
                    }
                    bufferedReader.close();
                    inputStream.close();
                    htpurl.disconnect();
                    System.out.println(7.5);
                    return result;

                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
    }

    @Override
    protected void onPreExecute() {
        System.out.println(8);
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("Login Status");
    }

    @Override
    protected void onPostExecute(String result) {
        if(result.equals("login done, Welcome USer....")) {

           //Getting error here

            startActivity(new Intent(MainActivity.this, Insertion.class));

        }else {

        }
            //alertDialog.setMessage(result);
            //alertDialog.show();
            //OkDialog.setMessage(result);

    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
}

共有1个答案

龙令雪
2023-03-14

您不在MainActivity类中,而是在不是活动的BackgroundWorker类中。要创建一个新的意图,您需要当前活动和您想要打开的活动(在本例中)。

如果不实例化一个类,就不能在另一个类内部使用它。为了做到这一点,您可以将MainActivity静态化(我不建议这样做),您可以将BackgroundWorker类放在MainActivity内部,这样MainActivity将是一个内部类,或者您可以创建MainActivity的实例(我不建议这样做)。

请看这个答案

 类似资料:
  • 我使用Laravel 5.2。我想问一个问题。如何更改重定向登录表单在laravel当我们已经做登录?我使用的是来自Php artisan make: auth的auth。 我已经登录并重定向到localhost:8000/admin 然后我再次打开localhost:8000/登录。它将重定向到“/”或localhost:8000/ 我的问题是如何将“/”更改为“/”管理员“?因此,即使我已经登

  • 我正在进行多重身份验证。我的前端有一个带有卡号和密码的登录表单。在auth.php中 在route.php中 在logincontroller中, 在loginModel.php中 当我尝试登录时,我收到此错误 EloquentUserProvider.php第110行中的错误异常:传递给Illumate\Auth\EloquentUserProvider的参数1::validateCreenti

  • 错误: TypeError:无法读取未定义的LoginForm c:/reactjs/hello-world/src/components/accountbox/LoginForm.js的属性“state”:23 2023 value={this.state.input.email}^24 onchange={this.handlechange}25 class=“form-control”26

  • 我试图在登录symfony2应用程序后实现重定向,以便在我的用户是否有一个属性时重定向。我已在项目的Handler文件夹中创建了AuthenticationSuccessHandler.php类: 但是当我登录时,我得到一个错误: 注意:未定义的属性:Me\MyBundle\Handler\AuthenticationSuccessHandler::$router in/var/www/MyBun

  • 我正在制作一个包含Spotify集成的应用程序,我被跟踪了这个链接https://developer.spotify.com/technologies/spotify-android-sdk/tutorial/ 通过引用此链接,我被置于“festevo://callback“作为回调重定向URI 当我试图登录Spotify时,每次我都遇到同样的错误。 请告诉我为什么会这样。。。 非常感谢。

  • 我是Spring的新手。我正在创建一个spring mvc应用程序。我有一个管理员url“/admin/”。如果我使用用户凭据和角色_ADMIN登录,那么我可以访问管理员页面。现在,这个场景运行良好。但如果我没有使用角色_ADMIN登录,并且我尝试访问/ADMIN/url,Spring Security性会将我重定向到/login页面。 这里我不想向外界公开 /admin/(或管理员url存在)u