2017-09-07 2 views
1

J'essaie de créer une application Android dans laquelle un utilisateur entre les informations de connexion et les données sont validées sur le serveur, pour le serveur que j'utilise xampp.Je veux obtenir la valeur affichée sur la page de résultats php dans android app et l'afficher à l'utilisateur en utilisant Toast.Comment puis-je utiliser okhttp pour recevoir de la valeur de script PHP à l'application Android?

@Override 
    protected Boolean doInBackground(Void... params) { 
     // TODO: attempt authentication against a network service. 

     Toast.makeText(getApplicationContext(),"Problem is in http", Toast.LENGTH_LONG).show(); 
     String result; 
     OkHttpClient client = new OkHttpClient(); 

     Request request = new Request.Builder() 
       .url("http:192.168.0.102/[email protected]&password=123456") 
       .build(); 

     Response response = null; 
     try { 
      response = client.newCall(request).execute(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     result=response.toString(); 
     Toast.makeText(getApplicationContext(),result, Toast.LENGTH_LONG).show(); 

     // TODO: register the new account here. 
     return true; 
    } 

Quand je lance l'application, il quitte de façon inattendue, ce qui pourrait être le problème? Toutes mes excuses si certaines informations importantes manquent en ce qui concerne la question.

+1

il suffit de passer par ce lien que j'ai mis à jour le plus récent okhttp3 link -> https://github.com/yash786agg/okhttp3 – yash786

Répondre

0

C'est certainement problématique

try { 
     response = client.newCall(request).execute(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

Vous attrapez et enregistrer l'erreur mais continue, de sorte que la réponse peut être nulle.

Il y a d'autres problèmes avec le code

  • Vous créez une nouvelle instance OkHttp pour chaque appel
  • on ne sait pas si vous utilisez effectivement ce sur un thread d'arrière-plan
  • IIRC Toast.show devrait être sur thread d'interface utilisateur, mais les appels doivent être okhttp fond