2017-07-25 5 views
-3

Salut les gars, je suis nouveau à des concepts de réseautage Android.Je veux envoyer un nom d'utilisateur, mot de passe, numéro imei et l'emplacement au serveur php de l'application android.J'ai terminé mon envoi.now ma question est de savoir comment recevoir la réponse.je veux obtenir le statut (1 ou 0) en fonction de ce que je veux passer à la page suivante.so tout le monde saura comment faire cela, vous êtes les bienvenus.android obtenir réponse json

 private static final String REGISTER_URL="http://vPC70.com/App/login.php"; 
    username = editTextUserName.getText().toString().toLowerCase(); 
    userpassword=editTextPassword.getText().toString().toLowerCase(); 
    loc="11.295756,77.001890"; 
     imeino = "12312312456"; 
    register(username, userpassword, imeino, loc); 

    private void register(final String username, final String userpassword, 
     String imeino, String loc) { 
     String urlSuffix = "? 
     username="+username+"&userpassword="+userpassword+"&imeino="+imeino 
    +"&location="+loc; 
     class RegisterUser extends AsyncTask<String,String , String>{ 

     ProgressDialog loading; 


     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loading = ProgressDialog.show(LoginActivity.this, "Please 
     Wait",null, true, true); 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 

      } 

     @Override 
     protected String doInBackground(String... params) { 
      String s = params[0]; 
      BufferedReader bufferedReader = null; 
      try { 
       URL url = new URL(REGISTER_URL+s); 
       HttpURLConnection con = (HttpURLConnection) 
      url.openConnection(); 
       bufferedReader = new BufferedReader(new 
      InputStreamReader(con.getInputStream())); 

       String result; 

       result = bufferedReader.readLine(); 
       return result; 

      }catch(Exception e){ 
       return null; 
      } 

     } 
     } 
     RegisterUser ru = new RegisterUser(); 
     ru.execute(urlSuffix); 

c'est la réponse

 {"Login":[{"status":"1","message":"Login Successfully !!!"}]} 
     {"Login":[{"status":"0","message":"Invalid Password !!!"}]} 

si la réponse est 1 pain grillé la connexion de message sucessfully si la réponse est 0 pain grillé le message mot de passe invalide en poste exécuter

+0

Est-ce que vous voulez analyser la JSON? – KeLiuyue

+0

ya ........... Avez-vous une idée –

+0

vous pouvez vérifier ma réponse @karthikeyan –

Répondre

0

Après avoir obtenu la réponse du serveur, en fonction d'afficher l'état du message dans du pain grillé

try { 
        JSONObject jobj = new JSONObject(response); 


        String status = jobj.getString("status"); 

        String msg = jobj.getString("message"); 

        if (status.equals("1")) { 
         //move to next page 
         Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show(); 

        } else { 
         Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show(); 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
+0

espérons que cela va résoudre votre problème –

+0

ouais buddy ...... –

+0

Si aidé. Ca ne dérange pas de marquer ça a la bonne réponse –

0

En onPostExecute (Chaîne s) vous pouvez convertir le résultat en json et vérifier la valeur de statut comme

@Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     loading.dismiss(); 
     JsonObject object = new JsonObject(s); 
     if(object.optString("status").equals("1")) 
      { 
      // Your Logic here 
     } 

    } 
+0

hey Anil Merci ......... ça fonctionne –

0

Créez la classe POJO/Model pour convertir votre réponse.

Vous aimez cette

public class LoginResponse{ 

@SerializedName("Login") 
@Expose 
private List<Login> login = null; 

public List<Login> getLogin() { 
return login; 
} 

public void setLogin(List<Login> login) { 
this.login = login; 
} 

} 

public class Login { 

@SerializedName("status") 
@Expose 
private String status; 
@SerializedName("message") 
@Expose 
private String message; 

public String getStatus() { 
return status; 
} 

public void setStatus(String status) { 
this.status = status; 
} 

public String getMessage() { 
return message; 
} 

public void setMessage(String message) { 
this.message = message; 
} 

} 

dans PostExcecute convertir la réponse à l'objet POJO comme celui-ci en utilisant GSON

Gson gson = new Gson(); 
LoginResponse response = gson.toJson(result, LoginResponse.class); 

Ici vous pouvez vérifier les conditions :;

if(response !=null && response.getLogin() !=null) 
{ 
    if(response.getLogin().getStatus().equalIgnoreCase("1")) 
    { 
       // show toast Login Successfully !!! and move to next screen 

    } 
else if(response.getLogin().getStatus().equalIgnoreCase("0")) 
    { 
    // Invalid Password !!! your logic here 
    } 
} 
0

Voici l'analyseur en fonction de votre chaîne de réponse

private void parseResponseJson(String response) throws JSONException { 
    JSONObject jsonObject = new JSONObject(response).getJSONArray("Login").getJSONObject(0); 
    String status = jsonObject.getString("status"); 
    String message = jsonObject.getString("message"); 
}