关于springGateway-修改form-data请求参数时遇到的问题

本文探讨了在使用Form-Data方式上传文件时遇到的问题,特别是在通过Gateway时修改请求数据的方法。文章详细介绍了如何正确地转换和编辑Form-Data报文,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的问题

1.我要实现的功能是,http请求再经过gateway的时候,可以修改、查看、添加请求数据,然后JSON格式的我已经处理好了
2.在使用form-data传参时候,上传文件的时候我通过将报文转为string进行操作(添加了一组数据),在编译回去总是有问题,filter放行到后面的服务上时,接口总是出现无法解析。
3.问题发生在报文数据转String,编辑之后在转回去,我通过查看文本信息,看不出来问题,困扰了很久

解决方案

这里暂不讨论各种DataBuffer、getBody()之类,前提都是已经能获取到信息的前提下

编辑http报文的信息,boundary等编辑的时候需要"\r\n",字符串格式一定要这个样子!!!不然看起来报文信息和原来一模一样,还是会出错

                builder.append(boundary + "Content-Disposition: form-data; name=\"userId\"\r\n" +
                        "\r\n" +
                        "ABC\r\n");
                        //注意上下的字符串格式
//                builder.append(boundary + "Content-Disposition: form-data; name=\"userId\"" +
//                        "\n" +
//                        "\n" +
//                        "ABC\n");

在这里插入图片描述

参考:https://www.bbsmax.com/A/E35pRr8zvX/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值