Невозможно прочитать JSON тело из объекта запроса в Java сервлете - PullRequest
1 голос
/ 03 августа 2020

Я создал сервлет java, который принимает запросы POST. В теле запроса POST содержится полезная нагрузка JSON. Запрос выглядит так - введите описание изображения здесь

В сервлете я пытаюсь получить полезную нагрузку JSON и распечатать ее -

StringBuffer jb = new StringBuffer();
            String line = null;
            try {
                BufferedReader reader = slingRequest.getReader();
                while ((line = reader.readLine()) != null)
                    jb.append(line);
            } catch (Exception e) { /*report an error*/ }

            try {
                JSONObject jsonObject =  HTTP.toJSONObject(jb.toString());
                PrintWriter pw = slingResponse.getWriter();
                pw.println(jsonObject);
                pw.close();
            } catch (JSONException e) {
                // crash and burn
                throw new IOException("Error parsing JSON request string");
            }

Результат выглядит следующим образом -

{"{        \"metadata\"":"{            \"id\": \"a@A.com\",            \"subscription-pref\": \"Subs\",            \"category\": \"COURSE\",            \"isSubscribed\": true,            \"source\": \"form\"        }    }}","Request-URI":"subscription","Method":"{","HTTP-Version":":"}

Обратите внимание, что узел subscription не существует в выводе. Вместо этого он отображается как значение Request-URI. Почему я получаю такие дополнительные значения, как Request-URI и HTTP-Version. Почему отсутствует узел subscription? Я просто хочу прочитать JSON полезную нагрузку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...