Веб-сервис Java RESTful-СООБЩЕНИЕ с полезной нагрузкой

#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 туда и обратно. Пожалуйста, предоставьте более подробную информацию о вашей конфигурации, если вы ищете конкретный ответ.