У меня есть bufferedReader, который принимает ответ от WebAPI для запроса httpPost.Java: BufferedReader и ответ WebAPI
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
/* send http-POST request to webAPI */
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
Данные, содержащиеся в «ш» в результате запроса HttpPost сделанного в WebAPI: -
{
"xx" : "...."
"yy" : "...."
"zz" : "...."
}
HTTP/1.1 202... blah blah blah
Content-Length: 35
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Connection: close
Прежде всего я хотел бы отметить, что это странно, что я получение информации заголовка в самом ответе ... но только для JAVA .. (я кодирую то же самое с C#, где я наиболее опытен и не получил никакой информации заголовка). Возможно ли это? так как ... в моем понимании, что ответ webapi не зависит от кода C# или Java?
Теперь моя главная цель - извлечь значение для ключа 'zz'.
Я пытался что-то вроде: -
JSONParser parser = new JSONParser();
try
{
JSONObject json = (JSONObject) parser.parse(br);
}
catch (org.json.simple.parser.ParseException e)
{
e.printStackTrace();
}
Однако из-за странного HTTP/202 ответа часть сообщения, я получаю сообщение об ошибке «Неожиданный символ (H) в позиции 281».
Итак, я думаю, может быть, мне нужно усечь мой буфер «br», прежде чем пытаться использовать JSON. Мне интересно, что это лучший способ сделать это?
вы получаете эту ошибку, потому что строка, что вы разбираете не является действительным 'JSON' –
Я понимаю, что Рамана. Однако в моем следующем утверждении я упоминаю, как я пытаюсь выяснить, как обрезать эту строку, чтобы я мог ее разобрать как json. – Philo
ya, как вы сказали в вопросе, вы также можете усечь его. Но почему вы делаете это сложным. Почему бы не использовать что-то простое, как обычные выражения? См. Эту ссылку https://regex101.com/r/gN4oJ8/2. См. Столбец информации о матчах на RHS –