Я делаю сервер для китайского устройства, прошивку которого я не могу изменить никакими средствами.
Он отправляет данные JSON в теле запроса на мой сервер с заголовками-> content-type: [application / octet-поток].Теперь при получении тела в Spring boot в начале и конце тела есть несколько мусорных символов.Тело:
� {"fk_name": "FK_DEV", "fk_time": "20190218130839", "fk_info": {"support_enroll_data": ["FP", "ПАРОЛЬ", "IDCARD"], ""fk_bin_data_lib ":" FKDATAHS101 "," firmware ":" WS535BV1_BCLK_v1.5.20 "," firmware_filename ":" WS435B "," fp_data_ver ": 112}}
Я пытался получить данные между первым появлением '{'и последнее появление'} '.Но другой запрос содержал скобку '}' в конечных символах мусора.
@RequestMapping("/*")
public ResponseEntity<String> greeting(@RequestHeader HttpHeaders headers, @RequestHeader("request_code") String request_code,
@RequestHeader("dev_id") String dev_id,
@RequestBody String pBody) {
System.out.println();
System.out.println("Incoming Request Start--------------------------------------");
for (Map.Entry<String, List<String>> e:
headers.entrySet()) {
System.out.println(e.getKey() + " : " + e.getValue());
}
System.out.println("Yolo " + request_code + " " + dev_id);
System.out.println(pBody);
System.out.println(pBody.substring(pBody.indexOf('{'), pBody.lastIndexOf('}') + 1));
HttpHeaders headersR = new HttpHeaders();
headersR.add("response_code", "OK");
System.out.println("Incoming Request End--------------------------------------");
System.out.println();
return new ResponseEntity<>(headersR, HttpStatus.OK);
}
Мой вопрос: мне нужно получить строку json из тела ответа.
