Je rencontre des problèmes lors de l'envoi de données XML à l'aide d'HTTP POST à une API.Problème lié à l'envoi de données XML à une API à l'aide de Java
Si j'envoie XML bien formaté, je reçois un message d'erreur:
serveur Exception: ne peut pas accéder à un fermé flux
Si le XML est pas bien formaté, je reçois HTTP 500
. Et si je viens d'envoyer une chaîne vide au lieu d'une chaîne avec XML, je reçois un message d'erreur: EMPTY REQUEST
.
Je n'ai pas beaucoup d'idées sur ce que l'erreur pourrait être, mais la connexion fonctionne parce que le message d'erreur est retourné au format XML. Je ne fais qu'envoyer les données XML sous forme de chaîne. Est-il possible que je doive envoyer un EOF ou quelque chose à la fin? Et comment puis-je faire cela dans mon code Java? D'autres idées sur ce que le problème peut être?
L'API est faite dans .NET
est le code Java I Ici je utilise pour afficher les données XML:
Authenticator.setDefault(new MyAuthenticator());
String xmlRequestStatus =
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><test><data>32</data></test>";
System.out.println(xmlRequestStatus);
String contentType = "text/xml";
String charset = "ISO-8859-1";
String request = null;
URL url = null;
HttpURLConnection connection = null;
OutputStream output = null;
InputStream response = null;
try {
url = new URL("http://127.0.0.1/test");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = (HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
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();
....
Merci, j'ai ajouté cela, mais j'ai eu le même problème. J'utilise le code de cette réponse: http://stackoverflow.com/questions/2793150/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests/2793153#2793153 – Jonas