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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Message from script interfer with http request's response


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 45
    Points
    45
    Par défaut Message from script interfer with http request's response
    Hi,

    Je ne suis pas familier des scripts en php et peut-être ma question est elle triviale .
    Je voudrais écrire un script en réponse à une requête http mais le script pollue la réponse que je fabrique avec des choses diverses que je ne sollicite pas.
    Voici déjà la manière dont la requête est faite coté appli java

    Code java : 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
    public static String post(String adress) throws IOException {
            String result = "";
            OutputStreamWriter writer = null;
            BufferedReader reader = null;
            try {
    //encodage des paramètres de la requête
                String data = "";
                for (int i = 0; i < keys.size(); i++) {
                    if (i != 0) {
                        data += "&";
                    }
                    // data+=keys.get(i)+"="+values.get(i);
                    data += URLEncoder.encode(keys.get(i), "UTF-8") + "=" + URLEncoder.encode(values.get(i), "UTF-8");
                }
    //création de la connection
                URL url = new URL(adress);
                URLConnection conn = url.openConnection();
                HttpURLConnection urlCon = (HttpURLConnection) conn;
                urlCon.setRequestMethod("POST");
                urlCon.setRequestProperty("accept", "application/json");
                urlCon.setDoOutput(true);
    //envoi de la requête
                writer = new OutputStreamWriter(urlCon.getOutputStream());
                writer.write(data);
                writer.flush();
     
    //lecture de la réponse
     
                reader = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
                String ligne = null;
                while ((ligne = reader.readLine()) != null) {
                    result += ligne + "\n";
     
               }
     
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
     
                try {
                    writer.close();
                } catch (Exception e) {
                }
                try {
                    reader.close();
                } catch (Exception e) {
                }
            }
            return result;
        }

    et ailleurs dans l'appli java

    System.out.println(s + "*");//* c'est avec ça que je vois que ma réponse est polluée
    JSONObject jsonObject = new JSONObject(s);
    String success = jsonObject.getString("response");
    System.out.println("la réponse par JSON*est " + success + "\n");
    String password = jsonObject.getString("password");
    System.out.println("le password par JSON*est " + password + "\n");
    String message = jsonObject.getString("message");
    System.out.println("le message par JSON*est " + message + "\n");
    Coté serveur j'essaye de forger une réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $responseArray = array('response' => 'success', 'password' => $password, 'message' => $mess); // or 'user_exists'
    	$responseJson = json_encode($responseArray);
    	header('HTTP/1.1 200 OK'); // or 4xx FAIL_TEXT on failure
    	header('Content-Type: application/json');
    	echo $responseJson;
    A priori ma réponse est correcte et tout se passerait bien sauf que avant la $reponseJson viennent s'intercaler des echos non sollicités, qui empêchent mon appli java de l'interprêter.

    Par exemple si je fais dans mon script un include 'file.php' le fichier file est envoyé en echo
    et interfère avec ma réponse. Il y a d'autres cas où le script parle sans que j'utilise echo et tout cela interfère avec ma réponse.
    Comment fait-on pour rediriger ce verbiage (info, warning etc) du script ailleurs que dans la réponse à la requête ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si ton script PHP produit des Warning, il faut corriger le problème et non chercher à ne pas afficher le Warning.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 45
    Points
    45
    Par défaut
    Ok ça je comprends et je suis d'accord

    Mais à propos du fait qu'en faisant
    ça m'envoie le fichier en écho !

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code PHP ou le résultat du fichier ?

    Est-ce que si tu appelles le fichier par ton navigateur directement tu as le même résultat ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 45
    Points
    45
    Par défaut
    Merci pour ton aide.

    En fait le navigateur reçoit la même chose
    $text_blocked=
    "Votre compte est bloqué. Soit vous êtes en cours d'inscription sur dakigu.org et attendez
    qu'un administrateur confirme votre inscription. Soit vous avez changé d'adresse IP sans
    forcément vous en apercevoir. Dans ce dernier cas, vous devriez recevoir un e-mail avec des
    directives et un mot de passe.\n<br/> ";
    $text_error_access=
    "Une erreur s'est produite lors de la tentative d'accès à la table :";
    {"response":"\u00e9chec","password":"","message":"Toutes les informations du formulaire ne sont pas transmises ! "}
    Ceci est un exemple dans lequel j'ai placé des messages text_blocked et text_error dans un fichier texts.php
    Quand ils sont écrit directement dans le fichier ils ne sont par renvoyés en echo

    Après ça j'ai bien la réponse json correcte

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 45
    Points
    45
    Par défaut
    En fait j'ai trouvé. Dans le fichier inclus, je croyais qu'il ne fallait pas répéter les balises php et j'avais tort.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/02/2014, 20h03
  2. [C#] [WebServices] Http Request et SOAP
    Par Piolet dans le forum Windows Forms
    Réponses: 17
    Dernier message: 02/02/2009, 18h42
  3. HTTP "request" et "response" lors du chargement d'une URL
    Par GoldenEyes dans le forum Réseau
    Réponses: 0
    Dernier message: 27/01/2009, 15h49
  4. HTTP request failed
    Par claralavraie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/05/2006, 12h16
  5. Réponses: 5
    Dernier message: 12/12/2005, 14h13

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