java - Android登录与字符串响应

标签 java android httpresponse

我想做一个表单登录,如果登录不成功,它会给出字符串响应“2”,我尝试过,但出现错误。 这是我的异步任务:

public class LoginAsyncTask extends AsyncTask<Void, Void, String>
    {
        String strUser = txtUsername.getText().toString();
        String strPass = txtPassword.getText().toString();
        String strUrlMain="http://www.abc.co.id/a/bb/login.htm?u="+strUser+"&p="+strPass;
        String str2;

        public LoginAsyncTask(){
            this.strUrlMain=strUrlMain; 
            System.out.println(strUrlMain);
        }


        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();

        Dialog = ProgressDialog.show(LoginProposal.this, "", "Mohon Tunggu, Sedang Melakukan Verifikasi");
        }

        @Override
        protected String doInBackground(Void... params) {
            String result="";
            try {
                result=Connection.get(strUrlMain);
            }
            catch (Exception e){
                result=" ";
                }
            return result;
        }

        @Override
        protected void onPostExecute(String result) 
        {
            if (!result.equals("")) {
                if(str2.equals("2"))
                {
                     Dialog.dismiss();
                     AlertDialog.Builder builder = new AlertDialog.Builder(LoginProposal.this);
                        builder.setTitle("Login Gagal");
                        builder.setMessage("User ID atau password salah.");
                     builder.setPositiveButton("Coba Kembali",
                             new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
                             txtPassword.setText("");
                             txtPassword.findFocus();
                             btnLogin.setClickable(true);
                         }
                     });
                        builder.setNegativeButton("Keluar",new DialogInterface.OnClickListener() {
                               @Override
                               public void onClick(DialogInterface dialog, int which) {

                                   finish();
                               }
                           });
                        builder.create().show();
                }

                else{
                    Dialog.dismiss();
                    Intent slide2 = new Intent(LoginProposal.this, DataProposal.class);

                    startActivity(slide2);

        }

这是我的连接方法:

public class Connection {

    public static String get(String url) throws IOException
    {
        String apiResponse = "";
        try {
            String urlFix = url;
            HttpClient client = new DefaultHttpClient();
            HttpGet post = new HttpGet(urlFix);
            HttpResponse response = client.execute(post);

            final int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode != HttpStatus.SC_OK) {
                throw new Exception("Got HTTP " + statusCode + " ("
                        + response.getStatusLine().getReasonPhrase() + ')');
            }

            HttpEntity entity = response.getEntity();
            InputStream is = entity.getContent();
            if(entity != null)
            {

                //"iso-8859-1"
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"),8);

                StringBuilder sb = new StringBuilder();

                String line = null;
                while ((line = reader.readLine()) != null)
                {
                        sb.append(line + "\n");
                }
                is.close();

                apiResponse = sb.toString();
            }
            else
            {
                apiResponse = "";
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        return apiResponse;
    }
}

这是我的 logcat 所说的:

10-03 10:55:54.436: E/AndroidRuntime(7561): FATAL EXCEPTION: main
10-03 10:55:54.436: E/AndroidRuntime(7561): java.lang.NullPointerException
10-03 10:55:54.436: E/AndroidRuntime(7561):     at id.co.asjmsig.eproposal.LoginProposal$LoginAsyncTask.onPostExecute(LoginProposal.java:80)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at id.co.asjmsig.eproposal.LoginProposal$LoginAsyncTask.onPostExecute(LoginProposal.java:1)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.os.AsyncTask.finish(AsyncTask.java:631)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.os.Looper.loop(Looper.java:137)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at android.app.ActivityThread.main(ActivityThread.java:4895)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at java.lang.reflect.Method.invokeNative(Native Method)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at java.lang.reflect.Method.invoke(Method.java:511)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
10-03 10:55:54.436: E/AndroidRuntime(7561):     at dalvik.system.NativeStart.main(Native Method)

LoginProposal.java:80 是 if(str2.equals("2")),我不知道我的错在哪里,我希望有人能帮我解决它,谢谢

最佳答案

您永远不会为 str2 变量赋值。这就是错误。

关于java - Android登录与字符串响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19150494/

相关文章:

java - 在java中,如何划分两个BigIntegers并将值存储在double中?

android - 如何从另一个 Activity 访问在一个 Activity 中创建的数据库?

android - 如何正确编辑阿拉伯字符串?

c# - ThreadAbortException(WebClient 使用 DownloadFile 从服务器获取文件)

json - 如何计算主节点的投资返回率

java - @JsonTypeResolver 是使用多个属性解析的唯一选项吗?

java - 如何访问tomcat管理器用户界面?

java - 为什么我的通用方法需要强制转换?

android - 如何在不知道当前 Activity 的情况下在 Android 应用程序中显示对话框

node.js - 从响应对象获取请求体