Problème lors de l'envoi des données json à partir d'une applict
Résolu/Fermé
A voir également:
- Problème lors de l'envoi des données json à partir d'une applict
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Comment trouver un numéro à partir du nom et prénom ✓ - Forum Mobile
- Trouver un numero de portable a partir d'un nom svp - Forum Internet / Réseaux sociaux
- Recherche à partir d'une image - Guide
- Astuces sur comment trouver un numéro de portable ? ✓ - Forum Mobile
3 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
28 mars 2017 à 19:16
28 mars 2017 à 19:16
Bonjour,
Il faudrait voir le code correspondant pour t'en dire plus...
De plus la question c'est quoi ?
Il faudrait voir le code correspondant pour t'en dire plus...
De plus la question c'est quoi ?
- Tu voudrais supprimer les valeurs qui sont à null ?
- Tu es censé avoir d'autres valeurs que celles qui sont null ?
Main.java
CPU.java
index.php
alors quand j'execute il me donne {"nom":null,"host_name":null,"os_name":null,"os_type":null,"os_version":null}. J'ai testé le format json et j'ai utilisé les fonctions d'erreur il me donne "no error". et enfin j'ai testé le même code dans un pc d'un ami et le code marche correctement et affiche le resultat souhaité
package SWibInfo;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
import javax.swing.filechooser.FileSystemView;
import org.omg.CORBA.portable.InputStream;
import webservice.Cpu;
public class Mainn extends JFrame {
private JLabel label = new JLabel("Veuiller saisir le code � barre de votre machine: ");
private JTextField textField = new JTextField(20);
private JButton button = new JButton("OK");
public static void infoMachine(String str){
InetAddress ip;
try {
//DESKTOP-8DP4E2A
ip = InetAddress.getLocalHost();
String hostName= ip.getHostName();
if(str.equals(hostName)){
System.out.println("Current host name : " + hostName);
String ipAdress= ip.getHostAddress();
System.out.println("Current IP address : " + ipAdress);
String nameOS= System.getProperty("os.name");
System.out.println("Operating system Name=>"+ nameOS);
String osType= System.getProperty("os.arch");
System.out.println("Operating system type =>"+ osType);
String osVersion= System.getProperty("os.version");
System.out.println("Operating system version =>"+ osVersion);
String args = "{\"nom\":\""+hostName+"\","
+ "\"host_name\":\""+hostName+"\","
+ "\"os_name\":\""+nameOS+"\","
+ "\"os_type\":\""+osType+"\","
+ "\"os_version\":\""+osVersion+"\""
+ "}";
Cpu.main(args);
}else{
System.out.println("Erreur: verifier votre code");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}
public Mainn(){
super("SWIB INFO");
// sets layout manager
setLayout(new GridBagLayout());
GridBagConstraints constraint = new GridBagConstraints();
constraint.insets = new Insets(10, 10, 10, 10);
constraint.gridx = 0;
constraint.gridy = 0;
add(label, constraint);
constraint.gridx = 1;
add(textField, constraint);
constraint.gridx = 0;
constraint.gridwidth = 2;
constraint.gridy = 1;
add(button, constraint);
button.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
String str = textField.getText();
JLabel label17 = new JLabel("Your text here");
try{
int MINUTES = 15; // The delay in minutes
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
infoMachine(str);
}
}, 0, 1000 * 60 * MINUTES);
}catch(Exception e){
e.printStackTrace();}
}
});
// adds window event listener
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
int reply = JOptionPane.showConfirmDialog(Mainn.this,
"Are you sure you want to quit?",
"Exit",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (reply == JOptionPane.YES_OPTION) {
dispose();
} else {
return;
}
}
});
// sets icon image
String iconPath ="/SWibInfo/Vector_by_Karpiu23.png";
Image icon = new ImageIcon(getClass().getResource(iconPath)).getImage();
setIconImage(icon);
pack();
// centers on screen
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Mainn();
}
});
}
}
CPU.java
package webservice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Cpu {
public static void main(String args) {
try {
// send as http get request
URL url = new URL("http://127.0.0.1/parc/index.php?order="+args);
URLConnection conn = url.openConnection();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
rd.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
index.php
<?php
header('Content-type: application/json');
$order = $_GET["order"];
$obj = json_decode(stripslashes(html_entity_decode($order)),true);
var_dump($obj);
$nom=$obj['nom'];
$host_name = $obj['host_name'];
$os_name = $obj['os_name'];
$os_type = $obj['os_type'];
$os_version = $obj['os_version'];
// Prints "bar"
echo $obj['nom'];
$array = array("nom" => $nom, "host_name" => $host_name, "os_name" => $os_name, "os_type" => $os_type, "os_version" => $os_version);
echo json_encode($array);
echo json_last_error_msg();
echo json_last_error();
alors quand j'execute il me donne {"nom":null,"host_name":null,"os_name":null,"os_type":null,"os_version":null}. J'ai testé le format json et j'ai utilisé les fonctions d'erreur il me donne "no error". et enfin j'ai testé le même code dans un pc d'un ami et le code marche correctement et affiche le resultat souhaité
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
28 mars 2017 à 19:44
28 mars 2017 à 19:44
Qu'est-ce qui est affiché avec les System.out.println ? Parce que si ces valeurs là valent null c'est normal qu'elles se propagent ainsi dans le JSON...
System.out.println("Current host name : " + hostName);
String ipAdress= ip.getHostAddress();
System.out.println("Current IP address : " + ipAdress);
String nameOS= System.getProperty("os.name");
System.out.println("Operating system Name=>"+ nameOS);
String osType= System.getProperty("os.arch");
System.out.println("Operating system type =>"+ osType);
String osVersion= System.getProperty("os.version");
System.out.println("Operating system version =>"+ osVersion);
ibti
>
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
28 mars 2017 à 19:51
28 mars 2017 à 19:51
voila c'est le résultat :
Current host name : ibti
Current IP address : 192.168.56.1
Operating system Name=>Windows 10
Operating system type =>amd64
Operating system version =>10.0
Current host name : ibti
Current IP address : 192.168.56.1
Operating system Name=>Windows 10
Operating system type =>amd64
Operating system version =>10.0
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
28 mars 2017 à 20:48
28 mars 2017 à 20:48
Je pense que les caractères spéciaux peuvent poser problème.
Tu devrais peut être encoder le query param avant de le transmettre.
Concrètement essayes
Ainsi au lieu de faire :
http://127.0.0.1/parc/index.php?order={"nom":"ibti","host_name":"ibti","os_name":"Windows 10","os_type":"amd64","os_version":"10.0"}
Cela devrait faire :
http://127.0.0.1/parc/index.php?order=%7B%22nom%22%3A%22ibti%22%2C%22host_name%22%3A%22ibti%22%2C%22os_name%22%3A%22Windows+10%22%2C%22os_type%22%3A%22amd64%22%2C%22os_version%22%3A%2210.0%22%7D
À voir si cela permet de régler le problème... sinon c'est que le problème est plutôt dans le PHP qui n'arrive pas à comprendre le message.
Tu devrais peut être encoder le query param avant de le transmettre.
Concrètement essayes
Cpu.main(java.net.URLEncoder.encode(args, "UTF-8"));
Ainsi au lieu de faire :
http://127.0.0.1/parc/index.php?order={"nom":"ibti","host_name":"ibti","os_name":"Windows 10","os_type":"amd64","os_version":"10.0"}
Cela devrait faire :
http://127.0.0.1/parc/index.php?order=%7B%22nom%22%3A%22ibti%22%2C%22host_name%22%3A%22ibti%22%2C%22os_name%22%3A%22Windows+10%22%2C%22os_type%22%3A%22amd64%22%2C%22os_version%22%3A%2210.0%22%7D
À voir si cela permet de régler le problème... sinon c'est que le problème est plutôt dans le PHP qui n'arrive pas à comprendre le message.