Aller au contenu

HttpResponse et BufferedReader


Recommended Posts

Bonjour a tous,

Je suis actuellement entrain de développer ma première application android (je suis plutôt dev PHP :))

J'ai suivi le tutoriel sur votre wiki

http://wiki.frandroid.com/wiki/Requ%C3%AAte_HTTP_POST

Je rencontre pourtant un probleme de taille, eclipse refuse la compilation de mon bout de code.

((Button)findViewById(R.id.Blogin)).setOnClickListener(new OnClickListener() {
   	 public void onClick(View v)
   	 {
   		 HttpPost httppost = new HttpPost("http://xxx.com/android-application/checkuser.php");
   		 EditText login = ((EditText)findViewById(R.id.login_e));
   		 String Login = login.getText().toString();

   		 EditText password = ((EditText)findViewById(R.id.password_e));
   		 String Password = password.getText().toString();

   		 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

   		 nameValuePairs.add(new BasicNameValuePair("login", Login));
   		 nameValuePairs.add(new BasicNameValuePair("pass", Password));
   		 try {httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));} 
   		 catch (UnsupportedEncodingException e) {e.printStackTrace();}
   		 HttpClient httpclient = new DefaultHttpClient();
   		 try {httpclient.execute(httppost);}
   		 catch (ClientProtocolException e) {e.printStackTrace();}
   		 catch (IOException e) {e.printStackTrace();}
   		 Toast.makeText(BoxlsActivity.this, "Table : " + nameValuePairs , Toast.LENGTH_SHORT).show();

   		 HttpResponse response=httpclient.execute(httppost);
   		 BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
   	  	 String s = reader.readLine();
   	 	}
        });	

C'est au niveau de HttpResponse que cela bloque.

Bon dans un premier temps mon compilateur refuse de compiler si je ne rajoute pas de TRY/CATCH.

Je rajoute donc mes try/catch, puis il refuse de compiler car

reader.readLine()

n'est pas instancier.

 ((Button)findViewById(R.id.Blogin)).setOnClickListener(new OnClickListener() {
   	 public void onClick(View v)
   	 {
   		 HttpPost httppost = new HttpPost("http://xxx.com/android-application/checkuser.php");
   		 EditText login = ((EditText)findViewById(R.id.login_e));
   		 String Login = login.getText().toString();

   		 EditText password = ((EditText)findViewById(R.id.password_e));
   		 String Password = password.getText().toString();

   		 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); //On crée la liste qui contiendra tous nos paramètres

   		 nameValuePairs.add(new BasicNameValuePair("login", Login));
   		 nameValuePairs.add(new BasicNameValuePair("pass", Password));
   		 try {httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));} 
   		 catch (UnsupportedEncodingException e) {e.printStackTrace();}
   		 HttpClient httpclient = new DefaultHttpClient();
   		 try {httpclient.execute(httppost);}
   		 catch (ClientProtocolException e) {e.printStackTrace();}
   		 catch (IOException e) {e.printStackTrace();}
   		 Toast.makeText(BoxlsActivity.this, "Table : " + nameValuePairs + " a été envoyer", Toast.LENGTH_SHORT).show();

   		 HttpResponse response;
		try {
			response = httpclient.execute(httppost);
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
   		 BufferedReader reader;
		try {
			reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
   	  	 try {
			String s = reader.readLine();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
   	 	}
        });	

J'instancie donc mon

BufferedReader reader = null;

ainsi que

 HttpResponse response = null;

Sa compile, mais l’émulateur pop une erreur type "The application XXX (process YYY) has stopped unexpectedly. Please try again."

Merci pour ceux qui s'accrocherons a mon code ;)

Noob :)

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouver :)

Pour infos il y avait plusieurs chose a vérifier.

La première, l’émulateur n’était pas connecter a internet.

Il a donc fallut rajouter dans les "run configurations" d'eclipse, un serveur DNS.

J'ai ensuite désactiver ma carte réseau de virtualBox et Hamashi.

Ensuite dans le Manifest, il faut rajouter la permission INTERNET

<uses-sdk android:minSdkVersion="7" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Voila, j’espère que sa en aidera certain ;)

Leoz

Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

J'ai trouver :)

Pour infos il y avait plusieurs chose a vérifier.

La première, l’émulateur n’était pas connecter a internet.

Il a donc fallut rajouter dans les "run configurations" d'eclipse, un serveur DNS.

J'ai ensuite désactiver ma carte réseau de virtualBox et Hamashi.

Ensuite dans le Manifest, il faut rajouter la permission INTERNET

<uses-sdk android:minSdkVersion="7" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Voila, j’espère que sa en aidera certain ;)

Leoz

slt mon ami

comment vous avez cree un serveur DNS sur eclipe car dans run configurations il existe que les icons: android emulateur et communs

svp aider je la meme problem que vous mais tu as resoudre ton probleme mais moi :( :mad:

j' attend votre reponse

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...