>> Terima mesej yang ditolak oleh CP: {}",json);JS"/> >> Terima mesej yang ditolak oleh CP: {}",json);JS">
Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan masalah SpringBoot @PostMapping menerima data penstriman daripada permintaan HTTP
@PostMapping("/test") public String pushMessage(@RequestBody byte[] data) throws Exception { String json = URLDecoder.decode(new String(data, DEFAULT_CHARSET), DEFAULT_CHARSET); log.info(">>> 接收CP推送的消息:{}", json); JSONObject jsonObject = JacksonUtils.jsonToBean(json, JSONObject.class); System.out.println(jsonObject.get("key")); return “success” }
Permintaan pelanggan
try { //创建连接 URL url = new URL(ADD_URL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); //application/x-javascript //text/xml->xml数据 //application/x-javascript->json对象 //application/x-www-form-urlencoded->表单数据 //application/json;charset=utf-8 -> json数据 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect(); //POST请求 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); JSONObject data = new JSONObject(); data.element("key", "这是一条测试数据"); out.writeBytes(data.toString()); out.flush(); out.close(); //读取响应 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes(), "utf-8"); sb.append(lines); } System.out.println(sb); reader.close(); // 断开连接 connection.disconnect(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Gesaan IDEA proses pembangunan seperti @RequestMapping(value=" /abc", kaedah = "RequestMethod.POST") digantikan dengan @PostMapping. Kini pelaksanaan @PostMapping.
@PostMapping ialah anotasi kompaun 4.3 memperkenalkan varian anotasi @RequestMapping untuk mewakili semantik kaedah beranotasi dengan lebih baik sebagai pintasan untuk @RequestMapping(method = RequestMethod.POST) .
Iaitu, ia boleh dipermudahkan kepada @PostMapping(value="/abc" ), yang terutamanya untuk memudahkan ingatan.
Banyak kaedah berikut adalah alias yang sepadan dengan teg @RequestMapping.
@RequestMapping(value = “”, path = “”, params = “”, headers = “”,consumes = “”, produces = “”)rrree
Varian lain adalah seperti berikut:
@GetMapping, @PutMapping, @PatchMapping dan @DeleteMapping, serupa dengan @PostMapping
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah SpringBoot @PostMapping menerima data penstriman daripada permintaan HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!