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;
Version imprimable
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.
Mais j'ai mettre les variables dans dans url pour les envoyer
Code:
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:
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:
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:
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:
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); }