Я создал сервлет 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 полезную нагрузку