读取json形式报文时,controller中用request.getParameter无法获取到报文中的参数

SpringBoot POST请求接收单个参数:@RequestParam、@RequestBody与@ModelAttribute方案详解 在Web开发中,HTTP请求参数绑定是后端处理客户端数据的基础环节。其核心原理在于服务器根据请求的Content-Type和预定义的解析策略,将数据映射到控制器方法的参数上。这一过程的技术价值在于实现了前后端数据的无缝对接,保证了接口的健壮性与可维护性。常见的应用场景包括表单提交、RESTful API交互以及文件上传等。本文聚焦于SpringBoot框架下,针对POST请求中接收单个参数这一常见但易混淆的需求,深入剖析了@RequestParam、@RequestBody和@ModelAttribute等 阅读详情

在读取json形式报文时,在controller中用request.getParameter无法获取到报文中的具体参数

json形式报文: 

{
    "parent_manage_com": "8611"
}

controller中获取方式:

String manageCom = request.getParameter("parent_manage_com");

 

之前的test测试类  发现这种方式不行!!!!:

 private static String uri="/。。/。。/managecom/query.do";//信息查询接口   
   
     private static String codiInfoUrl = "http:。。。。。。。/。。"+uri;
   
    public static void main(String[] args) {
        testCodeInfo();
    }

    public static void testCodeInfo() {
        String path="D:/测试JSON";
        String jsonPath = path+ "/讲师.json";
       
        String reqStr = IOUtil.readStringFromFile(new File(jsonPath),"utf-8");
        //也可以用拼json串的形式

       //String reqStr = "{"
               //  +"\"parent_manage_com\": \"8611\""
                //+ "}"
        String result = HttpUtil.post(codiInfoUrl, reqStr);
        System.out.println(result);
       }

后来就换了一种方式,将json转换为对象放在map里:

public static void main(String[]  arg) throws UnsupportedEncodingException{        
        
        /**
         * 测试报文
         */
        String path="D:/测试JSON";
        
        String jsonPath = path+ "/讲师.json";
        
        String json = IOUtil.readStringFromFile(new File(jsonPath),"utf-8");
       
        String url ="http://。。。。。。/。。。。/query.do"; 
        Map<String,String> pMap = new HashMap<String,String>();
        pMap.put("
parent_manage_com", "8611");
//        String timestamp = String.valueOf(System.currentTimeMillis());
//        pMap.put("timestamp", timestamp);//交易时间戳,格林威治时间,精确到毫秒。
//        String nonce = RandomStringUtils.randomAlphanumeric(20);
//        pMap.put("nonce", nonce);//随机数,长度20,数字+字母
        pMap.put("data", json);
//        String linkStr = LinkUtil.getLinkString(pMap);//除去数组中的空值和签名参数,把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
//        String signContent = "a12dadf_12asdfadsfaf213hzewangADq1da249jbb_10AF1As";//大童密钥
//        String signature = MD5.sign(linkStr, signContent, "UTF-8");//需要签名的字符串+密钥    MD5加密   编码格式UTF-8
//        pMap.put("signature", signature);
        System.out.println("请求:"+json);
//        System.out.println("json:"+json);
        //访问内部
        String reStr = HttpUtil.post(url, pMap);
        //访问外网
//        String reStr = HttpUtil.postByProxy(url, pMap);
        System.out.println("返回结果:"+reStr);
    }

 

这样就取到了!

 

 

 

 

 

 

 

 

 


 

深入解析HttpServletRequest与HttpServletResponse:Java Web开发核心对象 在Java Web开发中,理解HTTP请求与响应的处理机制是构建高性能应用的基础。HTTP协议作为Web通信的基石,定义了客户端与服务器之间数据交换的格式和规则。其工作原理涉及请求的发送、服务器的解析处理以及响应的返回,这一过程直接决定了Web应用的性能和可靠性。从技术价值看,掌握请求与响应的底层处理能力,能有效解决乱码、安全过滤、文件上传等常见问题,并优化内存使用与并发性能。在应用场景上,无论是传统的Servlet、主流的Spring MVC框架,还是JSP页面,都需要高效地操作请求和响应对象。本文聚焦于 阅读详情

相关推荐

Java对接钉钉互动卡片消息:从原理到实战的完整指南

在构建现代企业级应用时,消息推送是连接系统与用户的关键桥梁。其核心原理在于通过API实现服务端与客户端(如钉钉)的实时通信,将信息精准触达。这项技术的价值在于极大提升了业务流程的效率和用户体验,尤其适用于需要快速反馈和交互的场景,如任务处理、审批流和数据收集。钉钉互动卡片消息作为这一技术的典型应用,将传统的单向通知升级为内嵌在聊天窗口的交互式应用,允许用户直接完成表单填写、按钮点击等操作,无需页面跳转。本文聚焦于Java后端如何实现这一闭环,深入解析AccessToken管理、卡片消息发送、用户操作回调处理

weixin_30660027的博客 609

Spring MVC参数预处理与校验冲突的三种解决方案

在Web后端开发中,参数校验是确保数据有效性和系统安全性的关键环节,通常通过注解如@Valid和@NotNull实现。其原理是Spring MVC框架在调用Controller方法前,通过HandlerMethodArgumentResolver解析参数,并触发Validator进行校验。这项技术的核心价值在于拦截非法数据,保障业务逻辑的稳定执行。然而,当需要对请求参数进行全局预处理,例如解密或脱敏时,传统的Filter或Interceptor操作可能会破坏Spring原生的参数解析与校验流程,导致校验失效

weixin_33682790的博客 2033

JeecgBoot安全漏洞深度剖析:从低代码平台特性到SRC实战攻防

在软件开发领域,低代码开发平台通过可视化配置和代码生成,极大地提升了企业级应用(如OA、CRM、ERP系统)的构建效率。其核心原理在于将通用功能模块化,通过模板引擎和预置组件快速生成业务代码。然而,这种追求便捷的特性,若与薄弱的安全意识相结合,便会引入显著的安全风险,例如未授权访问和SQL注入。这些漏洞的技术价值在于,它们往往不是框架本身的致命缺陷,而是默认配置不当、依赖库漏洞与开发者对生成代码的误用共同作用的结果,最终在权限控制、数据交互等关键层面形成攻击面。在SRC(安全应急响应中心)漏洞挖掘和渗透测试

weixin_30530339的博客 381

request请求获取数据

request请求获取数据的三种方式

Artisan_w 929

STM32开发实战:从嵌入式系统到硬件控制 | 你必须得会

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1046

几率大的网络安全面试题(含答案)

其他篇章:Java校招极大几率出的面试题(含答案)----汇总 本文面试题汇总: 防范常见的 Web 攻击 重要协议分布层 arp协议的工作原理 rip协议是什么?rip的工作原理 什么是RARP?工作原理 OSPF协议?OSPF的工作原理 TCP与UDP区别总结 什么是三次握手四次挥手? tcp为什么要三次握手? dns是什么?dns的工作原理 一次完整的HTTP请求过程 Cookies和ses...

睶 6万+

request.getParameter("key")获取参数为空(json入参获取)

前后端分离开发,如果入参是json对象时,在controller中,使用@RequestBody加对象形式,会将入参映射到对应字段上;如果要对请求加拦截校验,验证入参是否带有特定参数,使用request.getParameter("key")来获取参数是无法实现的;如果想要获取参数,我们应该使用数据流来实现,但是会存在问题,就是数据流只能使用一次,request.getInputStream...

fz13768884254的博客 7188

STM32实战:ADXL345传感器驱动与数据采集全解析(IIC/SPI双模式适配)

本文详细解析了STM32驱动ADXL345传感器的全流程,包括IIC和SPI双模式适配、硬件连接、寄存器配置及数据采集处理。通过实战代码示例和常见问题排查指南,帮助开发者快速实现高精度加速度数据采集,适用于运动检测、姿态识别等多种嵌入式应用场景。

weixin_29171087的博客 314

json传递中文乱码解决方法以及解决request.getParameter()获取参数为乱码的问题

response.setContentType("text/json");     //设置字符集为'UTF-8'           /*设置字符集为'UTF-8'*/  response.setCharacterEncoding("UTF-8");

bboymoney的专栏 1428

ESP32驱动GC9A01圆形屏实战:Arduino平台LVGL移植与图像显示优化

本文详细介绍了在Arduino平台上使用ESP32驱动GC9A01圆形屏的实战指南,包括硬件连接、LVGL移植与图像显示优化。通过SPI配置、LVGL库安装和双缓冲机制等技巧,帮助开发者快速实现高效显示效果,适用于智能家居控制面板等应用场景。

weixin_29182481的博客 737

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析

文章目录 一、问题demo展示 1.前台JS请求代码(伪代码) 2.后台代码(伪代码) 二、问题分析 三、解决方案 1.[前台解决方案]修改Ajax post请求的contentType和data 2.[后台解决方案]使用@RequestBody 四、@RequestBody简单介绍 五:参考资料 SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.get...

dxyzhbb的博客 847

高通SDX55平台:5G速率问题排查分析方法

和大家分享一下高通5G平台5G速率问题排查分析方法。

四儿家的小祖宗的博客 5222

ajax请求contextType为application/json 后台request.getParameter无法获取参数

ajax请求contextType为application/json 后台request.getParameter无法获取参数 文章目录ajax请求contextType为application/json 后台request.getParameter无法获取参数问题描述解决方案第一种第二种参考 问题描述 前端传参为数组形式 前端代码: ajax 请求部分参数 data: {'listStr':J...

谢文峰的博客 3502

【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换

由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果: 在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl

智慧空间实验室 3816

[明道云] -基础教学1- 创建第一个工作表:从 0 到实用

明道云工作表相当于数据库表,是存储业务数据的核心组件。创建工作表主要有两种方式:1)从空白新建,通过添加字段(最多200个)、设置属性、配置表单样式;2)从Excel导入,需选择sheet、配置字段映射。创建后系统自动生成默认视图,支持多种视图形式(看板/日历等)。建议设置合适的标题字段和关联关系,初学者可在一小时内完成基础应用搭建。后续可扩展权限控制、工作流自动化等功能。

每日出拳老爷子的博客 558

对于过滤器中使用getInputStream()、getParameter()接收参数接收不到的一些知识,以及解决方法。

昨天,我需要做一个从主项目分离出来的项目对主项目的功能的调用,但是在写Http发送Post请求时,遇到了主项目接收不到参数的情况,从而引起了我对项目接收参数的一些探讨。 我们知道,对于spring项目接收参数用的最多的方式应该是request.getParameter(“xx”),这种方式了把,不论在过滤器Interceptor的preHandle()做拦截是获取参数处理,还是controlle

落尘 4343

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

《Java 100 天进阶之路》第72篇:JavaWeb面试高频题(2026版)

摘要:JavaWeb专题收官之作!集中梳理20道高频面试题——转发vs重定向、getParameter vs getAttribute、Filter vs Interceptor、Servlet生命周期、JSP九大内置对象与四大作用域、跨域(CORS)、Web安全(XSS/CSRF/SQL注入)。附完整对比表格、代码示例、避坑清单、面试高频追问陷阱。JavaWeb是Spring Boot的底层基础,拿下这20问,面试不慌!

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 744

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringBoot @RequestBody接收字符串:从消息转换器到编码陷阱的完整指南

在Web开发中,HTTP请求体数据的处理是基础且关键的一环。其核心原理依赖于HTTP协议的消息转换机制,通过Content-Type头与消息转换器的协同工作,实现字节流到Java对象的转换。这一机制的技术价值在于提供了统一、可扩展的数据绑定方案,极大简化了服务端开发。在实际应用场景中,无论是处理RESTful API的JSON数据、接收第三方回调,还是解析物联网设备的文本流,都离不开对消息转换器的深入理解。本文将聚焦于SpringBoot中通过@RequestBody接收字符串这一常见操作,深入剖析其背后的

weixin_30553777的博客 438

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Spring Boot项目XSS攻击防御:全局过滤器与请求包装器实战

跨站脚本攻击(XSS)是Web应用常见的安全威胁,其原理是攻击者将恶意脚本注入到网页中,当用户浏览时执行,可能导致会话劫持、数据窃取等严重后果。在Spring Boot项目中,由于框架简化了开发流程,开发者容易忽略对用户输入的严格校验,从而留下安全隐患。为应对此问题,一种高效的技术方案是采用“自定义过滤器(Filter)结合请求包装器(HttpServletRequestWrapper)”的全局防御机制。该方案通过拦截所有HTTP请求,在数据进入业务逻辑前进行无害化处理,实现了对表单参数、请求头和JSON请

weixin_33857679的博客 506

Spring MVC功能配置示例

Spring MVC的配置应用示例

onePlus5T的博客 544

SpringBoot入门、HTTP协议和分层解耦

有@SpringBootApplication这个注解的即启动类可以在这里启动项目@RestController------请求处理类@RequestMapping( 请求路径)name=heima/hello就是请求路径 name就是我们接受到的这个参数,然后return就是我们返回到页面的一个数据。

牛逼666 29

Java反序列化漏洞与内存马攻防实战:从CC链利用到纵深防御

Java反序列化漏洞是Web安全领域的经典威胁,其原理在于攻击者通过构造恶意序列化数据,在目标应用反序列化过程中触发任意代码执行。这一技术常与内存马结合,形成隐蔽的后持久化攻击手段。内存马作为一种无文件、驻留于JVM内存的恶意组件,能绕过传统文件检测,直接寄生在Web容器进程中,实现长期控制。在实战攻防中,攻击者常利用Common Collections(CC)链等Gadget完成漏洞利用,并通过动态注册Filter或Servlet植入内存马。对于企业安全防御,需构建从代码安全、运行时检测(RASP)到内存

weixin_30216561的博客 339

springMVC开发手册V2.0

今日内容看到SpringMVC这个名字我们会发现其中包含Spring,那么SpringMVC和Spring之间的会有关系么?答案是肯定有,SpringMVC隶属于Spring,是Spring技术中的一部分。那么SpringMVC到底是用来做什么的呢?那么既然已经有了Servlet为什么还需要花时间再学习一个SpringMVC技术?要回答这个问题,我们就需要搞清楚SpringMVC与Servlet相比,有什么优势:框架我们都知道是用来简化开发的,所以SpringMVC与Servlet相比,开发起来更简单快捷,

AlbenXie的博客 160

Web开发中文乱码全解析:从编码原理到根治方案

字符编码是计算机处理文本信息的基础,它定义了字符与二进制字节之间的映射规则。在Web开发中,UTF-8已成为国际通用的变长编码标准,因其良好的兼容性和跨语言支持而被广泛采用。理解编码原理对于确保数据在传输、存储和显示过程中的一致性至关重要,尤其是在处理多语言内容时。乱码问题的本质在于编码与解码环节的不匹配,这在前端表单提交、后端数据处理、数据库交互及网络传输等场景中尤为常见。通过系统性地统一编码规范,例如在HTML中声明<meta charset="UTF-8">、配置服务器端过滤器,以及确保数据库使用ut

weixin_30475039的博客 372

Java Web应用XSS攻击深度解析:从原理到实战防御体系构建

跨站脚本攻击(XSS)作为Web安全领域的核心威胁,其本质在于攻击者通过注入恶意脚本,利用浏览器对数据与代码的混淆执行,从而窃取用户会话、模拟操作或发起组合攻击。理解其原理是防御的基础,XSS攻击主要分为反射型、存储型和DOM型三类,分别对应不同的攻击向量与持久化方式。在Java Web开发中,其技术价值在于构建一套从输入到输出的全生命周期安全体系,而非依赖单一过滤函数。这包括采用白名单策略进行输入验证与规范化,根据HTML、属性、JavaScript等不同输出上下文进行精准的编码转义,并辅以内容安全策略(

weixin_33919950的博客 396
上一篇: Parameter 'manage_com_6' not found. Available parameters are [arg3, arg2, arg1, arg0, param3, param
下一篇: java中判断四个String类型的数据不能同时都为空,或者不能只有其中一个字段,StringUtils的isBlank()方法
不修电脑的程序员
博客等级 码龄9年 47粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值