2017-03-23 9 views
0

Ich mache Android Login-Tutorial mit Volley aus Android Bienenstock. aber wenn ich es versuchte, wird es zu volley-fehler gehen, ich weiß nicht warum, ich bin nur ein anfänger in android. Bitte hilf mir. . Ich laufe mein Projekt in einem Emulator und verbinde es mit USB-Debugging. Mein Emulator ist NOX.android login volley fehler

Ich habe das Setup bereits aus der Datenbank beendet.

Nach der Anmeldung, ich mag, dass meine Dashboard-Klasse Absicht, aber es nicht Absicht, es geht mit dieser erroe unter

Hier ist der Code, wo der Fehler kommt:

public void onErrorResponse(VolleyError error) { 
       //Log.e(TAG, "Login Error: " + error.getMessage()); 
       Toast.makeText(Login.this, 
         "VOLLEY ERROR", Toast.LENGTH_LONG).show(); 
       hideDialog(); 
      } 

und der vollständige Code dafür ist diese Klasse:

package com.example.codeboxjohn.clinic.activity; 

import android.app.ProgressDialog; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 


import com.android.volley.Request; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.example.codeboxjohn.clinic.R; 
import com.example.codeboxjohn.clinic.app.AppConfig; 
import com.example.codeboxjohn.clinic.app.AppController; 
import com.example.codeboxjohn.clinic.helper.SessionManager; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.HashMap; 
import java.util.Map; 


public class Login extends AppCompatActivity { 

    private Button btnLogin; 
    private EditText inputUsername; 
    private EditText inputPassword; 
    private ProgressDialog pDialog; 
    private SessionManager session; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     btnLogin = (Button)findViewById(R.id.btnLogin); 
     inputUsername = (EditText) findViewById(R.id.editTextUsername); 
     inputPassword = (EditText) findViewById(R.id.editTextPassword); 

     pDialog = new ProgressDialog(this); 
     pDialog.setCancelable(false); 

     //login 
     btnLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String username = inputUsername.getText().toString().trim(); 
       String password = inputPassword.getText().toString().trim(); 

       if(!username.isEmpty() && !password.isEmpty()) { 
        checkLogin(username, password); 
       } else { 
        Toast.makeText(getApplicationContext(),"Please enter the credentials!", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 

    private void checkLogin(final String username, final String password) { 
     //Tag used to cancel the request 
     String tag_string_req = "req_login"; 

     pDialog.setMessage("Logging in.."); 
     showDialog(); 

     StringRequest strReq = new StringRequest(Request.Method.POST, 
       AppConfig.URL_LOGIN, new Response.Listener<String>() { 

      @Override 
      public void onResponse(String response) { 
       //Log.d(TAG, "Login Response: " + response.toString()); 
       hideDialog(); 

       try { 
        JSONObject jObj = new JSONObject(response); 
        boolean error = jObj.getBoolean("error"); 

        // Check for error node in json 
        if (!error) { 
         // user successfully logged in 
         // Create login session 
         session.setLogin(true); 

         // Inserting row in users table 

         // Launch main activity 
         Intent intent = new Intent(Login.this, 
           Dashboard.class); 
         startActivity(intent); 
         finish(); 
        } else { 
         // Error in login. Get the error message 
         String errorMsg = jObj.getString("error_msg"); 
         Toast.makeText(getApplicationContext(), 
           "ERROR KO", Toast.LENGTH_LONG).show(); 
        } 
       } catch (JSONException e) { 
        // JSON error 
        e.printStackTrace(); 
        Toast.makeText(getApplicationContext(), "Json error: " + response.toString(), Toast.LENGTH_LONG).show(); 
       } 

      } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       //Log.e(TAG, "Login Error: " + error.getMessage()); 
       Toast.makeText(Login.this, 
         "VOLLEY ERROR", Toast.LENGTH_LONG).show(); 
       hideDialog(); 
      } 
     }) { 

      @Override 
      protected Map<String, String> getParams() { 
       // Posting parameters to login url 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("username", username); 
       params.put("password", password); 

       return params; 
      } 

     }; 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(strReq, tag_string_req); 
    } 

    private void showDialog() { 
     if(!pDialog.isShowing()) 
       pDialog.show(); 
    } 

    private void hideDialog() { 
     if(pDialog.isShowing()) 
      pDialog.dismiss(); 
    } 

} 
+0

Was sind die Fehler, die Sie bekommen? –

+0

das Sir .. Volley Fehler. –

+0

zeigen Sie den StackTrace. – HaroldSer

Antwort

0

gemäß dem Code, den Sie geschrieben,

StringRequest strReq = new StringRequest(Request.Method.POST, 
      AppConfig.URL_LOGIN, new Response.Listener<String>() { 

Ich kann sehen, dass Sie keine Anfrage Parameter (Benutzername und Passwort) an die URL übergeben.

Da es sich um eine POST Anfrage handelt, ist eine Anfrage erforderlich. Übergeben Sie das Anfrageobjekt und Sie erhalten eine korrekte Ausgabe.

Danke