我是春季新手,在这里我正在发送一个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();