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 :

Requête URL avec paramètres (method POST)


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut Requête URL avec paramètres (method POST)
    Bonjour,

    je développe une appli android dans laquelle j'ai besoin de faire une requête sur un serveur distant contenant un script php.

    Côté java, le code est le suivant:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     try {
                URL url = new URL(pUrl);
     
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("POST");
                conn.setDoInput(true);
                conn.setDoOutput(true);
                conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty( "charset", "utf-8");
     
                String query ="";
                if(params.length!=0){
     
                    Uri.Builder builder = new Uri.Builder()
                            .appendQueryParameter("'firstParam'", (String) params[0])
                            .appendQueryParameter("'secondParam'", (String) params[1]);
                                    query = builder.build().getEncodedQuery();
     
                }
                // Open connection for sending data
                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(
                        new OutputStreamWriter(os, "UTF-8"));
     
                if(!query.equals("")){
                    writer.write(query);
                }
     
                writer.flush();
                writer.close();
                os.close();
                conn.connect();
     
                //traitement du POST au retour de l'appel:
                int response_code = conn.getResponseCode();
                // Check if successful connection made
                if (response_code == HttpURLConnection.HTTP_OK) {
                    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
                    StringBuilder sb = new StringBuilder();
                    String line = null;
     
                    // Read Server Response
                    while((line = reader.readLine()) != null)
                    {
     
                        sb.append(line);
                    }
     
                    reader.close();
                    json = sb.toString();
                }else{
     
                   Log.i("retour false", ""+response_code );
                }
     
            } catch (UnsupportedEncodingException e) {
               Log.e("", e.toString());
            } catch (MalformedURLException e) {
                Log.e("", e.toString());
            } catch (IOException e) {
                Log.e("", e.toString());
            }
     
            // try parse the string to a JSON object
            try {
     
                jObj = new JSONObject(json.substring(json.indexOf("{"), json.lastIndexOf("}") + 1));
     
                Log.d("dd ", jObj.toString());
            } catch (JSONException e) {
                Log.e("JSON Parser", "Error parsing data " + e);
            }
    côté php, le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (isset($_POST["firstParam"]) && isset($_POST["secondParam"]) ) {
           $lon= urldecode($_POST["firstParam"]);
    	$lat= $_POST["secondParam"];
    }
    $response["lon"] = utf8_encode($lon);
    $response["lat"] = utf8_encode($lat);
     
    ********
    ********
     
    echo json_encode($response,JSON_UNESCAPED_UNICODE);
    lorsque je lance la requête sans paramètres, elle s'exécute correctement mais lorsque je la lance avec des paramètres, j'obtiens une erreur 500.

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    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
    Par défaut
    Bah oui, c'est quoi ces apostrophes (') autour du nom des paramètres...
    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 confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Bonjour,

    merci pour la remarque, j'ai enlevé les quotes mais j'ai toujours l'erreur 500 avec ce warning illegal/unquoted identifier 'firstParam' at position 0.
    et aucun autre message d'erreur.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Regarde la query que tu construis. À quoi ressemble-t-elle ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Après de multiples recherches, j'ai pu résoudre mes soucis:
    Le 1er souci dû à l'error 500 était lié à l'hébergeur. J'utilise OVH et par défaut il est configuré en mode "production", j'ai changé cela en mode "development", ça se fait dans le fichier .ovhconfig.

    Après cela j'ai eu un 2e souci parce que les paramètres de ma requête n'étaient pas récupérés dans mon script php. Ceci était dû à cette instruction dans mon source java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
    , je l'ai supprimé et c'est ok à présent.

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

Discussions similaires

  1. Post url avec paramètre
    Par rafikindia dans le forum Services Web
    Réponses: 2
    Dernier message: 11/01/2010, 12h15
  2. Passage de variable avec la méthode POST
    Par lama85 dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2006, 11h12
  3. Appel d'une page avec la methode POST depuis php
    Par QuantuX dans le forum Langage
    Réponses: 9
    Dernier message: 04/08/2006, 12h45
  4. [IDHTTP] Problème avec la methode post (login:pass@ww.url)
    Par Rayek dans le forum Web & réseau
    Réponses: 5
    Dernier message: 11/07/2005, 10h03
  5. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

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