IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Erreur d'envoie URL


Sujet :

Android

  1. #1
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Points : 55
    Points
    55
    Par défaut Erreur d'envoie URL
    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;
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    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

  3. #3
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    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 : 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) {
     
     
    	}

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Commences par virer tous les try/catch dans la fonction getHttpResponse, et mets les autour de son appel
    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);
    }
    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
    7
     
    try {
    			url = new URL(location);
     
    		} catch (MalformedURLException e) {
     
    		}
    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....

    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

  5. #5
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Commences par virer tous les try/catch dans la fonction getHttpResponse, et mets les autour de son appel
    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);
    }
    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
    7
     
    try {
    			url = new URL(location);
     
    		} catch (MalformedURLException e) {
     
    		}
    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....

    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);
    	}
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]erreur d'envoie mail, pourquoi??
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/05/2006, 14h43
  2. [Mail] Erreur d'envoi
    Par nebil dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2006, 15h57
  3. Réponses: 2
    Dernier message: 16/01/2006, 11h38
  4. [Upload] Upload : erreur et envoi multiple
    Par linou dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo