SpringVue,四种常用的请求,如何编写

server/2024/11/14 4:22:11/

四种请求各是什么意思

post 约等于插入操作 insert
get 就是查询
put 是修改
delete 。。。

java_5">DemoController.java

java">package com.example.demo.controller;import org.springframework.web.bind.annotation.*;@CrossOrigin
@RequestMapping("/test") // 将公共路径添加到类上
@RestController
public class DemoController {@PostMapping("/post")public String handleJSONRequest(@RequestBody String jsonString) {// 这里可以对接收到的JSON字符串进行处理System.out.println("接收到的JSON字符串:" + jsonString);// 返回一个简单的响应return "成功接收到JSON请求";}@GetMapping("/get/{id}") // 在路径中定义了一个名为"id"的路径参数public String handleGetRequest(@PathVariable("id") String id) {// 根据接收到的路径参数进行条件查询逻辑// 假设这里根据id查询某个结果,这里只是简单示例if ("1".equals(id)) {System.out.println("查询到ID为1的结果");return "查询到ID为1的结果";} else {System.out.println("未查询到符合条件的结果");return "未查询到符合条件的结果";}}@PutMapping("/put")public String handlePutRequest(@RequestBody String data) {// 处理PUT请求逻辑System.out.println("接收到的PUT请求数据:" + data);return "处理PUT请求";}@DeleteMapping("/delete")public String handleDeleteRequest() {System.out.println("接收到DELETE请求");// 处理DELETE请求逻辑return "处理DELETE请求";}
}

java_54">DemoControllerTest.java

java">package com.example.demo.controller;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;@SpringBootTest
@AutoConfigureMockMvc
public class DemoControllerTest {// 注入MockMvc来模拟HTTP请求@Autowiredprivate MockMvc mockMvc;/*** 测试POST请求是否正常处理。* 发送一个JSON格式的POST请求到"/test/post"路径,并验证返回状态码和内容。*/@Testpublic void testPost() throws Exception {// 发送一个 POST 请求到 "/test/post" 路径mockMvc.perform(MockMvcRequestBuilders.post("/test/post")// 设置请求的 Content-Type 为 JSON 格式.contentType(MediaType.APPLICATION_JSON)// 设置请求体为 JSON 格式的字符串,模拟客户端发送的 JSON 数据.content("{\"key\":\"value\"}"))// 断言返回的状态码为 OK (200).andExpect(MockMvcResultMatchers.status().isOk())// 断言返回的内容为 "成功接收到JSON请求".andExpect(MockMvcResultMatchers.content().string("成功接收到JSON请求"));}/*** 测试GET请求是否正常处理。* 发送一个GET请求到"/test/get"路径,并验证返回状态码和内容。*/@Testpublic void testGet() throws Exception {mockMvc.perform(MockMvcRequestBuilders.get("/test/get/1").contentType(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().string("查询到ID为1的结果"));}/*** 测试PUT请求是否正常处理。* 发送一个JSON格式的PUT请求到"/test/put"路径,并验证返回状态码和内容。*/@Testpublic void testPut() throws Exception {mockMvc.perform(MockMvcRequestBuilders.put("/test/put").contentType(MediaType.APPLICATION_JSON).content("{\"key\":\"value\"}")).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().string("处理PUT请求"));}/*** 测试DELETE请求是否正常处理。* 发送一个DELETE请求到"/test/delete"路径,并验证返回状态码和内容。*/@Testpublic void testDelete() throws Exception {mockMvc.perform(MockMvcRequestBuilders.delete("/test/delete").contentType(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().string("处理DELETE请求"));}
}

App.vue

<template><div><button @click="testPost">测试POST请求</button><button @click="testGet">测试GET请求</button><button @click="testPut">测试PUT请求</button><button @click="testDelete">测试DELETE请求</button><div v-if="response">{{ response }}</div></div>
</template><script setup>javascript">
import { ref } from 'vue';
import axios from 'axios';const response = ref('');
const templateUrl='http://localhost:8081/test';async function testPost() {try {const jsonData = {key1: 'value1'};const jsonString = JSON.stringify(jsonData);const response = await axios.post(templateUrl + '/post', jsonString, {headers: {'Content-Type': 'application/json',}});handleResponse(response);} catch (error) {console.error('Error:', error);}
}async function testGet() {try {const response = await axios.get(templateUrl + '/get/1');handleResponse(response);} catch (error) {console.error('Error:', error);}
}async function testPut() {try {const jsonData = {key: 'value'};const jsonString = JSON.stringify(jsonData);const response = await axios.put(templateUrl + '/put', jsonString, {headers: {'Content-Type': 'application/json',}});handleResponse(response);} catch (error) {console.error('Error:', error);}
}async function testDelete() {try {const response = await axios.delete(templateUrl + '/delete');handleResponse(response);} catch (error) {console.error('Error:', error);}
}function handleResponse(response) {response.value = response.data;console.log(response);
}
</script>

http://www.ppmy.cn/server/19954.html

相关文章

K8s: 从集群外部访问Service

从集群外部访问 Service 1 &#xff09;概述 在前面我们一直实践的是在集群内部访问 Service&#xff0c;之前有2种方法 方法1&#xff1a;在一个node节点上&#xff0c;通过对创建的的时候&#xff0c;对port进行一个环境变量的注册来保证Service能够正确对 不同的pod 访问到…

(ChatGPT中文、吾爱Al、核桃、WeexAl地址发布页、ai创作、Chat中文)分享好用的ChatGPT

目录 1、ChatGPT 中文 - Chat GPT 2、吾爱AI 3、 核桃 4、WeexAI 地址发布页 5、ai创作

SHELL脚本编程----netstat练习3-输出每个IP的连接数

描述 假设netstat命令运行的结果我们存储在nowcoder.txt里&#xff0c;格式如下&#xff1a; Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:6160 0.0.0.0:* LISTEN tcp 0 0…

2024年深圳杯东三省数学建模联赛A题论文首发第二种思路

深圳杯A题论文代码分享资料链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1L2NVgoefSW-yuqZjEB3wcw 提取码&#xff1a;sxjm 问题一 数据转换&#xff1a; 首先&#xff0c;我们将监测站的经纬度坐标转换为基于米的笛卡尔坐标系。这是因为在地面上的大尺度距离…

txt大文件拆分(批量版)

之前的python程序只能拆分单个文件&#xff0c;这里重新加了个文件夹拆分的功能&#xff08;打包好的exe文件在文章末尾&#xff09; 使用步骤&#xff1a;运行代码–>把文件放到input文件夹里–>命令行界面回车–>output文件夹输出文件 outputPath "./output&q…

【Hadoop】-Hive客户端:HiveServer2 Beeline 与DataGrip DBeaver[14]

HiveServer2 & Beeline 一、HiveServer2服务 在启动Hive的时候&#xff0c;除了必备的Metastore服务外&#xff0c;我们前面提过有2种方式使用Hive&#xff1a; 方式1&#xff1a; bin/hive 即Hive的Shell客户端&#xff0c;可以直接写SQL方式2&#xff1a; bin/hive --…

一则 TCP 缓存超负荷导致的 MySQL 连接中断的案例分析

除了 MySQL 本身之外&#xff0c;如何分析定位其他因素的可能性&#xff1f; 作者&#xff1a;龚唐杰&#xff0c;爱可生 DBA 团队成员&#xff0c;主要负责 MySQL 技术支持&#xff0c;擅长 MySQL、PG、国产数据库。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使…

centos7使用源码安装方式redis

安装编译源码的工具gcc yum install -y gcc下载源码 源码下载地址 https://download.redis.io/releases/ 注意事项 不建议安装最新版本redis&#xff0c;所以我这里选择6.2.6版本 下载 wget https://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar -zxvf redis-…