前端参数传递方式
1. None:
对于没有请求体的情况,通常用于GET请求等。
2. Form-Data:
import request from '../utils/request.js';
export const submitFormData = (formData) => {
return request.post("/submitForm", formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
};
3. x-www-form-urlencoded:
import request from '../utils/request.js';
export const submitUrlEncodedForm = (data) => {
return request.post("/submitForm", new URLSearchParams(data), {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
});
};
4. Raw:
import request from '../utils/request.js';
export const submitRawData = (jsonData) => {
return request.post("/submitRawData", jsonData, {
headers: {
'Content-Type': 'application/json',
},
});
};
5. Binary:
import request from '../utils/request.js';
export const uploadBinaryData = (file) => {
const formData = new FormData();
formData.append('file', file);
return request.post("/uploadBinary", formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
};
6.GraphQL:
import request from '../utils/request.js';
export const sendGraphQLRequest = (graphqlQuery) => {
return request.post("/graphql", { query: graphqlQuery }, {
headers: {
'Content-Type': 'application/json',
},
});
};
后端接收方式
1. None:
对于没有请求体的情况,通常用于GET请求等。
Spring Boot注解:无需特殊注解,可以使用@GetMapping、@RequestMapping等注解处理。
2. Form-Data:
用于以表单形式提交数据,适用于文件上传或表单提交。
Spring Boot注解:使用`@RequestParam`注解来接收表单字段,通常结合`@PostMapping`使用。
@PostMapping("/upload")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file)
{
// 处理文件上传逻辑
// ...
return ResponseEntity.ok("File uploaded successfully");
}
3. x-www-form-urlencoded:
用于以URL编码形式提交数据,适用于普通的表单提交。
Spring Boot注解:使用`@RequestParam`注解来接收表单字段,通常结合`@PostMapping`使用。
@PostMapping("/submitForm")
public ResponseEntity<String> submitForm(@RequestParam String param1, @RequestParam String param2) {
// 处理表单提交逻辑
// ...
return ResponseEntity.ok("Form submitted successfully");
}
4. Raw:
用于直接编辑和发送原始的请求体数据,可以选择不同的数据格式,如JSON、XML等。
Spring Boot注解:使用`@RequestBody`注解来接收请求体中的数据,通常结合`@PostMapping`使用。
@PostMapping("/submitRawData")
public ResponseEntity<String> submitRawData(@RequestBody Map<String, Object> data) {
// 处理原始数据逻辑
// ...
return ResponseEntity.ok("Raw data submitted successfully");
}
5. Binary:
用于上传二进制文件或数据。
Spring Boot注解:使用`@RequestParam`注解来接收文件,通常结合`@PostMapping`使用。
@PostMapping("/uploadBinary")
public ResponseEntity<String> uploadBinary(@RequestParam("file") MultipartFile file) {
// 处理二进制文件上传逻辑
// ...
return ResponseEntity.ok("Binary data uploaded successfully");
}
6.GraphQL:
用于发送GraphQL查询或变更请求。
Spring Boot注解:使用`@PostMapping`注解,并使用`@RequestBody`注解接收GraphQL请求体。
@PostMapping("/graphql")
public ResponseEntity<String> handleGraphQLRequest(@RequestBody String graphqlQuery) {
// 处理GraphQL请求逻辑
// ...
return ResponseEntity.ok("GraphQL request handled successfully");
}