Удалить символы мусора из тела запроса при весенней загрузке? - PullRequest
0 голосов
/ 18 февраля 2019

Я делаю сервер для китайского устройства, прошивку которого я не могу изменить никакими средствами.

Он отправляет данные 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 из тела ответа.

The garbage characters were not showing u properly in the question so added a screenshot

1 Ответ

0 голосов
/ 18 февраля 2019

Я не вижу никакого мусора в конце (возможно, уточните).

То, что вы видите впереди, вероятно, является меткой порядка байтов UTF-8, которую отправители не должны включать, но получатели могутбезопасно удалить.См. RFC 8259, раздел 8.1 .

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