我是春季新手,在这里我正在发送一个http请求,该请求需要将消息传递到服务器。但是消息应该作为字节数组发送。我使用以下curl命令。这里传递的消息是“你好”。

curl -i -H "Content-type: application/json" -X POST -d '{"message":[72,69,76,76,79]}' http://localhost:8080/json


控制器应侦听请求,然后再次将消息字段恢复为byte []。
控制器代码:

@RequestMapping(value = "/json", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<Map<String, Object>> jsonReceiver(@RequestHeader Map<String, String> headers, @RequestBody Map<String, Object> request) {

    String bytes = request.get("message").toString();

    LOGGER.info("Message: {}", bytes);
    Map<String, Object> response = new HashMap<>();

    response.put("status-code", "1000");
    response.put("success", "true");

    HttpHeaders respHeaders = new HttpHeaders();
    respHeaders.add("Pragma", "ack");
    return new ResponseEntity<Map<String, Object>>(response, respHeaders, HttpStatus.ACCEPTED);}


在这里,我可以将输出作为字符串。但我想将其保存为一个字节[]。
有没有办法从控制器获取它作为字节数组,而无需读取为字符串然后进行操作。

Message: [72,69,76,76,79]

最佳答案

您可以像这样从byte[]制作String

byte[] byteArray = bytes.getBytes();

07-24 09:25