Salut,
j'ai développé une application android mais dans la panier,lors dans l'envoie, j'ai des erreur pourtant tout les variables existes dans URL.
l'image au dessous des erreurs explique mieux les erreurs.
Merci d'aider;
Salut,
j'ai développé une application android mais dans la panier,lors dans l'envoie, j'ai des erreur pourtant tout les variables existes dans URL.
l'image au dessous des erreurs explique mieux les erreurs.
Merci d'aider;
Bein c'est marqué. Tu passes probablement un index à la méthode charAt qui est soit négatif soit supérieur à la taille de la séquence de caractère, d'où l'exception IndexOutOfBounds.
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Mais j'ai mettre les variables dans dans url pour les envoyer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //getOutput.setText(""); String logintophp = "&logintophp="+login; String nametophp = "&nametophp="+name; String idproductphp = "&idproductphp="+idproduct; String pricetophp = "&price="+price; String qte = "&qte="+qtee; String taille = "&taille="+tailles; String couleur = "&couleur="+couleurs; //String couleur = "&couleur="+ecouleur.getText().toString(); //String taille = "&taille="+etaille.getText().toString(); Log.i("URL",""+idproductphp+logintophp+qte+pricetophp+taille+couleur+nametophp); char P = getHttpResponse(URL+idproductphp+logintophp+qte+pricetophp+taille+couleur+nametophp);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 private char getHttpResponse(String location) { StringBuffer result = new StringBuffer(); URL url = null; try { url = new URL(location); } catch (MalformedURLException e) { } if (url != null) { try { HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); String inputLine; int lineCount = 0; while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) { lineCount++; result.append(inputLine); } in.close(); urlConn.disconnect(); } catch (IOException e) { } } else { } return result.charAt(P); } public void onClick(View arg0) { }
Commences par virer tous les try/catch dans la fonction getHttpResponse, et mets les autour de son appel
par exemple:
Parceque la manière dont tu gères les exceptions dans la fonction getHttpResponse est à la rue... par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 try { char P = getHttpResponse(URL+idproductphp+logintophp+qte+pricetophp+taille+couleur+nametophp); } catch (Exception ex) { Log.e("MONAPPLI","Erreur de récupération !",ex); }
Que se passe-t-il si location est mal formée ? (par exemple avec un ':' dans login) ? il y a une exception, qui n'est affichée nulle part, indiquée à personne... et on continue le programme avec url à null....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { url = new URL(location); } catch (MalformedURLException e) { }
Donc un StringBuffer vide....
Donc une exception sur: result.charAt(P); à la sortie....
Le try/catch des exception c'est vraiment très rare de devoir le faire.... Par contre il manque des try/finally !
Exemple de fonction 'correcte' niveau try:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 private char getHttpResponse(String location) throws MalformedURLException, IOException { StringBuffer result = new StringBuffer(); URL url = new URL(location); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); try { BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); try { String inputLine; int lineCount = 0; while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) { lineCount++; result.append(inputLine); } } finally { in.close(); } } finally { urlConn.disconnect(); } if (result.length() == 0) throw new IOException("No data received !"); return result.charAt(P); }
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager