#java #json #spring #rest #spring-mvc
#java #json #весна #rest #spring-mvc
Вопрос:
У меня есть URL-адрес и полезная нагрузка запроса.
Скажем, URL: https://somesresource.com
Полезная нагрузка: {Идентификатор пользователя: «4566»}
Результат, который я получаю обратно, представляет собой Json с несколькими парами ключ-значение.
Я попытался сделать это в консоли Rest, и вывод (Json) выглядел хорошо. Но, когда я пытаюсь запустить следующую программу, выводится не json, а файл (html, я полагаю) с сервера URL. Как мне получить Json вместо файла?
@Transactional
@RequestMapping(value = "/xxx", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
String consumer() throws Exception {
String line;
String userId = "12345";
StringBuffer jsonString = new StringBuffer();
URL url = new URL("https://somewebsite/userprofile");
String payload="{"userId":"" sid ""}";
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
try {
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
writer.write(payload);
writer.close();
System.out.print(connection.getInputStream().toString());
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = br.readLine()) != null) {
jsonString.append(line);
}
br.close();
connection.disconnect();
}
catch(Exception e) {
}
return jsonString.toString();
}
Ответ №1:
Я думаю, что вам не хватает конвертера в вашем приложении. Я использую веб-сервис RESTful с Spring и использую MappingJacksonHttpMessageConverter для преобразования JSON туда и обратно. Пожалуйста, предоставьте более подробную информацию о вашей конфигурации, если вы ищете конкретный ответ.