Я начал небольшой проект на Java.
Мне нужно создать клиент, который будет отправлять xml на URL в виде HTTP-запроса POST.
Я пытаюсь сделать это, используя пакет java.net.*
(ниже приведен фрагмент кода), но получаю сообщение об ошибке следующим образом:
java.io.IOException: Server returned HTTP response code: 500 for URL: "target url"
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at newExample.main(newExample.java:36)
Мой код выглядит следующим образом:
try {
URL url = new URL("target url");
URLConnection connection = url.openConnection();
if( connection instanceof HttpURLConnection )
((HttpURLConnection)connection).setRequestMethod("POST");
connection.setRequestProperty("Content-Length", Integer.toString(requestXml.length()) );
connection.setRequestProperty("Content-Type","text/xml; charset:ISO-8859-1;");
connection.setDoOutput(true);
connection.connect();
// Create a writer to the url
PrintWriter writer = new PrintWriter(new
OutputStreamWriter(connection.getOutputStream()));
// Get a reader from the url
BufferedReader reader = new BufferedReader(new
InputStreamReader(connection.getInputStream()));
writer.println();
writer.println(requestXml);
writer.println();
writer.flush();
String line = reader.readLine();
while( line != null ) {
System.out.println( line );
line = reader.readLine();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Пожалуйста, помогите с подходящими примерами или любыми другими способами сделать это.
Укажите ошибки / ошибки в приведенном выше коде или другие возможности.
Моя веб-служба работает в среде Spring.
XML для отправки в формате строки: requestXml