1. 程式人生 > 程式設計 >Spring boot @RequestBody資料傳遞過程詳解

Spring boot @RequestBody資料傳遞過程詳解

這篇文章主要介紹了Spring boot @RequestBody資料傳遞過程詳解,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

@RequestBody需要接的引數是一個string化的json

@RequestBody,要讀取的資料在請求體裡,所以要發post請求,還要將Content-Type設定為application/json

java的api

引數為JSONObject,獲取到的引數處理

@PostMapping("/combine")
  public Result combine(@RequestBody JSONObject jsonParam) {
    System.out.println(jsonParam.toJSONString());
    System.out.println(jsonParam.get("fileName"));
    ArrayList ll= (ArrayList)jsonParam.get("ops");
    for(int i = 0;i < ll.size(); i ++){
      ArrayList mm = (ArrayList)ll.get(i);
      for(int j = 0;j < mm.size(); j ++){
        System.out.println(mm.get(j));
      }
    }
    return ResultGenerator.genSuccessResult();
  }

(1)js呼叫

var dispatchesDTO = {"fileName":"E:/java/project/ppt/data/tmpTest.pptx","ops":[["E:/java/project/ppt/data/test1.pptx","1,2,9"],["E:/java/project/ppt/data/Threejs動畫.pptx","1"],["E:/java/project/ppt/data/系統時間和實時天氣.pptx","1"]]};
$.ajax({
    type: "post",contentType:"application/json",url: "http://localhost:8080/api/ppt/combine",data: JSON.stringify(dispatchesDTO),success: function(data){ 
    console.log(data); 
  }
});

(2)php的curl呼叫

<?php
//初始化
$curl = curl_init();
//設定抓取的url
curl_setopt($curl,CURLOPT_URL,'http://localhost:8080/api/ppt/combine');
$aa = [
  "fileName" => "E:/java/project/ppt/data/tmp.pptx","ops"   => [['E:/java/project/ppt/data/test1.pptx','1,9'],['E:/java/project/ppt/data/test1.pptx','2'],],];
$data_string = json_encode($aa);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($curl,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_HTTPHEADER,array(
  'Content-Type: application/json','Content-Length: ' . strlen($data_string),));
//執行命令
$data = curl_exec($curl);
//關閉URL請求
curl_close($curl);
//顯示獲得的資料
print_r($data);

(3)postman呼叫

引數

{"fileName":"E:/java/project/ppt/data/tmpTest.pptx","1"]]}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。