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
Coté serveur j'essaye de forger une réponseSystem.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");
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.
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;
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 ?
Partager