У меня есть следующий сценарий. У меня есть файл XML:Как с помощью строки POST XML с помощью RestTemplate
запрос-users.xml
<?xml version="1.0"?>
<q:query xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3">
</q:query>
При выполнении завивки воздаем:
curl.exe --user administrator:5ecr3t -H "Content-Type: application/xml" -X POST http://localhost:8080/midpoint/ws/rest/users/search -d @C:\Users\user\query-users.xml
я получить желаемый ответ в XML. Я пытаюсь сделать то же запрос POST с помощью RestTemplate
из JAVA кода:
try{
StringBuilder builder = new StringBuilder();
builder.append("http://localhost:8080/midpoint/ws/rest/users/search");
builder.append("?query=");
builder.append(URLEncoder.encode("<?xml version=\"1.0\"?><q:query xmlns:q=\"http://prism.evolveum.com/xml/ns/public/query-3\"></q:query>"));
URI uri = URI.create(builder.toString());
restOperations.postForEntity(uri, new HttpEntity<String>(createHeaders("username", "pass")), String.class);
logger.info(response);
}catch(Exception e){
logger.info(e.getMessage());
}
}
я получаю Internal Servel Error
. Есть что-то, что я делаю неправильно, передавая XML-строку в запрос POST с RestTemplate
, но я не понимаю, что это такое.
Есть ли способ, как это решить?
Благодаря
У вас есть доступ к лог сервера? Я вижу, что вы обращаетесь к localhost – TungstenX
Вы не отправляете свой XML в тело запроса, вы отправляете его как параметр запроса ... этот пост может помочь вам http://stackoverflow.com/questions/35461148/how- к отправке в XML-пост-запросов, с пружинным-resttemplate – anders