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 :

Requete POST invalide


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut Requete POST invalide
    Bonjour à tous,

    J'essaye actuellement, pour une application Android que je suis en train de développer, de créer une requête http de type POST, que j'envoie à un serveur et dont je dois récupérer la réponse.

    Rien de bien sorcier jusque là, sauf que j'ai un problème que je ne comprend pas (sans doute du à mon inexpérience...)

    Ma requête marche très bien sous l'émulateur (j'utilise Eclipse avec le plug-in ADT, et j'utilise la version 2.1 du SDK). J'arrive à l'envoyer, et à récupérer une réponse.

    Par contre, lorsque j'essaye à partir de mon téléphone (un HTC Desire), impossible! La seul réponse que je reçoit est "ERR_INVALID_REQ". Notons également que mes requêtes GET marchent très bien que ce soit avec l'émulateur ou le téléphone.

    Le problème semble venir des arguments. En effet, un POST sans argument obtient bien une vraie réponse du serveur.

    Donc... quelles sont les différences entre l'émulateur et le téléphone? Un problème d'encodage des arguments? J'utilise UrlEncodedFormEntity sur une List<NameValuePair>... Une autre façon de faire?

    Enfin, si vous avez des idées, n'hésitez pas... Aidez moi!

    Merci à tous

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    Peut tu montrer un peu de code?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Avec plaisir!

    Code d'appel
    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
     
    			Log.i("POST", "Creation params");
     
    			HttpPost httppost = new HttpPost("http://www.url.fr/script.php");
     
    			List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
     
     
    			nameValuePairs.add(new BasicNameValuePair("nom",nom.getText().toString()));			
    //....
    			nameValuePairs.add(new BasicNameValuePair("invitation","1"));
     
     
    			Log.i("POST", "Codage params");
     
    			try {
    				httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
     
    			} catch (UnsupportedEncodingException e) {
    				Log.e("POST", "Encodage");
    			}
     
     
    			Log.i("POST", "Envoie requete");
    			HttpClient httpclient = new DefaultHttpClient();
    			try {
    //résultats ne changent pas avec ou sans le header
    				httppost.setHeader("Content-type","application/x-www-form-urlencoded");
    				HttpResponse response=httpclient.execute(httppost);
    				Log.i("POST",convertStreamToString(response.getEntity().getContent()));
     
    			} catch (ClientProtocolException e) {
    				Log.e("POST", "CPE lors de l'envoi");
    				e.printStackTrace();
    			} catch (IOException e) {
    				Log.e("POST", "IOE lors de l'envoi");
    			} 
     
    		}
    	};

    Log AVD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    10-07 07:47:33.734: INFO/POST(225): Creation params
    10-07 07:47:33.764: INFO/POST(225): Codage params
    10-07 07:47:33.824: INFO/POST(225): Envoie requete
    10-07 07:47:34.224: DEBUG/dalvikvm(225): GC freed 3195 objects / 205792 bytes in 151ms
    10-07 07:47:34.454: INFO/global(225): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
    10-07 07:47:34.454: INFO/POST(225):             <XML>
    10-07 07:47:34.454: INFO/POST(225):             <CODE>0</CODE>
    10-07 07:47:34.454: INFO/POST(225):                </XML>
    10-07 07:47:34.454: INFO/POST(225):
    Log HTC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    10-07 09:49:16.928: INFO/POST(7831): Creation params
    10-07 09:49:16.928: INFO/POST(7831): Codage params
    10-07 09:49:16.938: INFO/POST(7831): Envoie requete
    10-07 09:49:18.388: INFO/global(7831): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
    10-07 09:49:18.388: INFO/POST(7831): ERR_INVALID_REQ

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    As tu accès au serveur pour savoir pourquoi il t'a invalidé ta requête?
    As tu essayé de passer par le wifi pour tester ta requête avec le htc?

  5. #5
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Citation Envoyé par yan Voir le message
    As tu essayé de passer par le wifi pour tester ta requête avec le htc?
    Je complète d'une petite info pour soutenir la démarche : J'ai cru comprendre que certains opérateurs bloquaient certains types de requetes / ports. Ce qui pourrait coller dans ton cas. Donc comme préconiser, essaye par le WIFI pour voir si le problème vient bien de ton code, et non de l'opérateur.

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Waow...

    Alors en effet, en Wifi, pas de soucis, ça passe très bien...

    Au delà de la question "comment contourner ce problème?" (autre chose que de faire du GET?), est-ce bien légal comme pratique?

    J'avoue être assez surpris que le problème vienne de là (merci Orange...), mais dans tous les cas, merci pour la rapidité et la précision de la réponse!

Discussions similaires

  1. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  2. Pb de syntaxe dans requete POST HTTP
    Par MarkoMytho dans le forum Langage
    Réponses: 5
    Dernier message: 08/08/2006, 07h18
  3. Réponses: 4
    Dernier message: 13/06/2006, 13h36
  4. Optimiser les requetes POST et GET
    Par localhost dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2006, 02h53
  5. Poster une requete POST avec fsockopen
    Par ePoX dans le forum Langage
    Réponses: 8
    Dernier message: 27/11/2005, 14h20

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