在Spring Boot中从请求正文中删除垃圾字符?

时间:2019-02-18 07:45:35

标签: spring spring-boot http spring-mvc http-headers

我正在为中文设备制造服务器,该固件不能以任何方式更改。

它使用headers-> content-type:[application / octet-stream]将请求正文中的JSON数据发送到我的服务器。现在在Spring引导中获取body,在body的开头和结尾都有一些垃圾字符。 身体:

。{“ fk_name”:“ FK_DEV”,“ fk_time”:“ 20190218130839”,“ fk_info”:{“ supported_enroll_data”:[“ FP”,“ PASSWORD”,“ 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 :(得分:0)

我最后没有看到任何垃圾(也许可以澄清)。

您在前面看到的可能是UTF-8字节顺序标记,发件人不应该包括该标记,但是收件人可以安全地删除。参见RFC 8259, Section 8.1

相关问题