如何在前端传递一个String 的变量和一个obj对象到后端,然后被Java后端接收

2023-09-14 13:36:16

首先我们通过post向后端发送请求,本篇博客仅纪录一下,在实际开发中需要从前端传递多值到后端,并且不存放到一个对象中进行传值处理,简单的一个案例展示该怎么做罢了!!!

// 创建一个包含字符串和对象的数据
const postData = {
  stringValue: "Hello, World!", // 你要发送的字符串数据
  yourObject: {
    // 你的自定义对象属性
  }
};

// 定义后端API的URL
const apiUrl = "http://your-backend-url.com/api/endpoint"; // 替换为实际的后端URL

// 发起POST请求
fetch(apiUrl, {
  method: "POST",
  headers: {
    "Content-Type": "application/json", // 指定请求体的内容类型为JSON
  },
  body: JSON.stringify(postData), // 将数据转换为JSON格式字符串
})
  .then((response) => {
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    return response.json(); // 解析响应的JSON数据
  })
  .then((data) => {
    // 在这里处理后端返回的数据
    console.log("Response from server:", data);
  })
  .catch((error) => {
    console.error("Error:", error);
  });

后端接收:

public class PostStringAndObjectExample {
    public static void main(String[] args) {
        try {
            // 定义目标后端的URL
            String url = "http://your-backend-url.com/api/endpoint";

            // 创建URL对象
            URL endpointUrl = new URL(url);

            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) endpointUrl.openConnection();

            // 设置请求方法为POST
            connection.setRequestMethod("POST");

            // 启用输入输出流
            connection.setDoOutput(true);

            // 创建一个字符串数据
            String stringData = "Hello, World!"; // 你要发送的字符串数据
            // 创建一个对象
            YourObject yourObject = new YourObject(); // 你的自定义对象

            // 将数据转换为JSON格式或其他需要的格式
            // 这里使用JSON示例
            String jsonData = "{\"stringValue\":\"" + stringData + "\", \"yourObject\":" + yourObjectToJson(yourObject) + "}";

            // 获取输出流
            OutputStream os = connection.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");

            // 写入数据
            osw.write(jsonData);
            osw.flush();
            osw.close();

            // 获取响应
            int responseCode = connection.getResponseCode();

            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 读取响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuilder response = new StringBuilder();

                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();

                // 处理响应
                String responseBody = response.toString();
                System.out.println("Response: " + responseBody);
            } else {
                System.out.println("POST request failed with response code: " + responseCode);
            }

            // 关闭连接
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 自定义方法将对象转换为JSON字符串,你需要根据你的对象结构进行修改
    private static String yourObjectToJson(YourObject obj) {
        // 实现将对象转换为JSON的逻辑
        // 返回JSON字符串
        return "{}";
    }
}

// 自定义对象类
class YourObject {
    // 定义你的对象属性
}
更多推荐

【Unity每日一记】资源加载相关和检测相关

👨‍💻个人主页:@元宇宙-秩沅👨‍💻hallo欢迎点赞👍收藏⭐留言📝加关注✅!👨‍💻本文由秩沅原创👨‍💻收录于专栏:unity每日一记⭐🅰️推荐文章⭐⭐【软件设计师高频考点暴击】⭐【Unityc#专题篇】之c#系统化大礼包】⭐【unity数据持久化】数据管理类_PlayerPrfs⭐【unity本

【python百炼成魔】Python循环语句:掌握while循环的实战应用

前言文章目录前言循环结构1.什么是循环结构2.python的while循环3.循环语句的图示while的使用案例1.使用while循环打印从1到5的数字2.计算1-100的偶数和3.模拟用户登录给三次机会4.猜数字游戏总结循环结构1.什么是循环结构循环结构是编程中的一种控制结构,用于重复执行一段代码块,直到满足特定的条

Vite 完整版详解

1.打包构建:Vite使用Rollup作为默认的构建工具。通过运行npmrunbuild命令,Vite会将应用程序的源代码打包成一个或多个优化的静态文件,以便在生产环境中进行部署。Vite的构建过程会根据需要进行代码拆分、压缩和优化,以提供最佳的性能和文件大小。#package.json{"scripts":{"bui

zabbix自定义监控内容案例

一、自定义监控内容案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过3个,超过3个就发出报警信息1、在客户端创建自定义key明确需要执行的linux命令创建zabbix监控项配置文件,用于自定义Key#在zabbix的配置文件中定义了会加载放在/etc/zabbix/zabbix_agent2.d/目录下,

动态代理解决方案

调用不同对象的相同方法,前后都有相应操作,用动态代理的方案完成.packagecom.hspedu.spring.proxy2;importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.lang.reflect

QTday2

完善登录框点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。如果账号和密码匹配,则弹出信息对话框,给出提示信

openEuler与Linaro携手参加OSSUMMIT 2023

2023年9月19日,全球顶级开源峰会OSSUMMITEU2023在西班牙-比尔巴鄂正式开幕。作为由Linux基金会主办的世界顶级开源活动之一,峰会以“InnovationHappensHere”的主题,汇集了全球开源开发者、厂商、技术专家、用户和高校科研机构等,共同探讨开源创新和未来。本次峰会,openEuler深度

java 如何快速实现异步调用方法

java如何快速实现异步调用方法什么是异步编程CompletableFuturejava演示什么是异步编程在实现异步调用之前,我们先了解一下,什么是异步编程?什么场景下适用等等情况。我们都知道,在传统的同步编程中,当一个操作开始执行时,程序会阻塞并等待该操作完成,然后才能继续执行后续代码。这种阻塞等待的方式可能会导致程

华为OD机试 - ABR 车路协同场景 - (Java 2023 B卷 100分)

目录专栏导读一、题目描述1、问题2、条件3、原型二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现

redis集群搭建

title:“Redis集群搭建”createTime:2022-01-04T20:44:58+08:00updateTime:2022-01-04T20:44:58+08:00draft:falseauthor:“name”tags:[“redis”]categories:[“install”]description

节能改造效果检测计算方法

声明本文是学习GB-T29314-2023电动机系统节能改造规范.而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们7综合评估7.1一般规定7.1.1电动机系统节能改造后,应对设备运行效果进行评估,改造后系统的生产效率和系统分界点指标应达到改造设计要求。7.1.2电动机系统改造后,应对与改造设备相关的

热文推荐