Habituellement, lorsque je reçois des données POST, il est envoyé à partir d'un formulaire HTML et les paramètres ont des noms, c'est-à-dire <input type="text" name="yourname" />
, puis je peux recevoir et imprimer ces données avec php echo $_POST['yourname'];
.Comment envoyer du code XML à partir d'une application Java et l'imprimer avec PHP sur le serveur à l'aide de HTTP POST?
Maintenant, je suis l'implémentation d'une application Java qui devrait POST des données au format XML à une URL spécifiée. J'ai écrit une simple page PHP que je peux essayer de POSTER des données, mais les données ne sont pas imprimées. Et comme il n'y a pas de nom de paramètres, je ne sais pas comment je devrais l'imprimer avec PHP.
J'ai essayé d'envoyer du XML simple au serveur et le serveur devrait répondre avec MESSAGE: <XML>
, mais seulement la réponse avec MESSAGE:
. Qu'est-ce que je fais mal?
Voici mon code PHP sur le serveur:
<?php
echo 'MESSAGE:';
print_r($_POST); ?>
Et voici mon code Java sur le client:
String xmlRequestStatus = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<test></test>";
String contentType = "text/xml";
String charset = "ISO-8859-1";
String request = null;
try {
request = String.format("%s",
URLEncoder.encode(xmlRequestStatus, charset));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
URL url = null;
URLConnection connection = null;
OutputStream output = null;
InputStream response = null;
try {
url = new URL("http://skogsfrisk.se/test/");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", contentType);
output = connection.getOutputStream();
output.write(request.getBytes("ISO-8859-1"));
if(output != null) try { output.close(); } catch (IOException e) {}
response = connection.getInputStream();
...
} catch (IOException e) {
e.printStackTrace();
}
@Jonas Avez-vous essayé de lire la page de manuel par le lien que j'ai posté ci-dessus? –
Oui, mais j'ai fait une autre erreur, maintenant ça marche bien, merci. – Jonas
Merci, ça marche bien avec ce PHP: ' Php echo 'MESSAGE:'. $ HTTP_RAW_POST_DATA; ?> ' – Jonas