[神坑已解决]Http请求参数中的加号被转换为空格的问题

这篇具有很好参考价值的文章主要介绍了[神坑已解决]Http请求参数中的加号被转换为空格的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题场景 (着急解决的小伙伴可以直接看场景总结)

String str = Base64Util.getBase64Encode(“小狗”)//调用方使用该方法加密
    得到值小狗的加密编码str:sdfsdf+sdf

前端传参数之前,将参数值加密为sdfsdf+sdf,传递给后端之后,后端tomcat自动将str中的加号变为空格 ->> sdfsdf sdf(🤬🤬🤬这就是后端接收到的参数值param,加号未被识别变成了空格)

Base64Util.getBase64Decoder(param)//后端接口使用该方法解密
    //解密之后得到的值是乱码的,因为他之前加密出来的数据被修改了。(加号变成了空格!!!)

所以我们要将后端解密的时候的值作修改,进而解密得到正确的数据。

加密后的数据 ->> tomcat ->> 解密数据

加密后的数据 ->> 二次加密(为了经过tomcat之后,后端收到的参数就是加密后的编码) ->> tomcat ->> 解密数据

场景总结:你给后端传参,参数里有加号,tomcat会将加号变为空格,导致后端接收入参错误。

解决方法😎:二次加密,%2B转换为空格

 String paramNew = URLEncoder.encode(str, "UTF-8");
 //str是头次加密得到的编码,将其使用URLEncoder进行二次加密

利用tomcat的另外一个属性,会将%2B转换为加号,那我们就将第一次加密后的数据(这个加密编码中是含有加号的)再次使用上述URLEncoder进行加密,加密之后就会将头次加密编码中的加号事先转换为%2B。
[神坑已解决]Http请求参数中的加号被转换为空格的问题,http,网络协议文章来源地址https://www.toymoban.com/news/detail-853389.html

到了这里,关于[神坑已解决]Http请求参数中的加号被转换为空格的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP四大参数类型及请求参数的方式和如何接收

    请求头参数顾名思义,是存放在请求头中发送给服务器的参数,服务器通过解析请求头获取参数内容。通常会存放本次请求的基本设置,以帮助服务器理解并解析本次请求的body体。 参数形式如: 在我们的SpringBoot中,通过 @RequestHeader 注解可以获取到。 Spring Boot 读取http head

    2024年02月03日
    浏览(40)
  • Java 发送Http请求携带中文参数时 请求报400的错误请求

    在 Java 中,URL 中不能直接包含中文字符,因为 URL 规范要求 URL 必须是 ASCII 字符。如果需要在 URL 中传递中文参数,需要对中文参数进行 URL 编码,将其转换为浏览器中的参数形式。可以使用 java.net.URLEncoder 类来进行 URL 编码。

    2024年02月11日
    浏览(39)
  • HTTP请求响应详解 (HTTP请求数据格式,常见请求方式,后端响应参数)及Apifox(postman)使用方式

    目录 一.HTTP协议  二.HTTP请求数据格式  请求方式 三.后端响应请求 基于SpringBoot响应数据 请求响应的参数类型 同一响应格式 四.Apifox(postman)使用方法 HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议。 HTTP的特点和工作原理如下

    2024年03月09日
    浏览(66)
  • HTTP 请求参数之三种格式

    Query String Parameters 、Form Data 、 Request Payload 三种格式的区别。主要是因为 Content-Type(用于表明发送数据流的类型) 与请求方式 method 不同,导致传递的数据格式不同。 1. Query String Parameters 格式: ?key=valuekey=value 参数会以 url string 的形式进行传递,即?后的字符串则为其请求参数

    2024年01月21日
    浏览(45)
  • 【nginx】配置将HTTPS请求转换成HTTP

    要将HTTPS请求转换为HTTP请求,可以在Nginx的配置文件中添加以下配置: 打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 。 在 server 块中添加以下配置,将HTTPS请求转发到后端的HTTP服务: 将 yourdomain.com 替换为你的域名, /path/to/your/ssl_certificate.crt 和

    2024年02月10日
    浏览(49)
  • http之GET请求和POST请求的传递参数的方式

    get: 情况1:接口正常返回 code,data,message ,且无需传递参数 (vu3) 情况2: 需要将参数拼接到url地址上 (vue3)   情况3 需要传递参数,query 传参 (vue3) 情况4 既有query传参也有path传参 post 情况1 接口返回的数据没有使用data包裹,这种情况一般取不到数据,我们需要用 ext

    2024年02月16日
    浏览(41)
  • JAVA HTTP中POST请求带参数

    JAVA HTTP中POST请求带参数 通过设置url地址 HashMap为参数 ResponseEntity执行

    2024年02月06日
    浏览(43)
  • Http中post/get请求参数接收

    Http请求报文示例图如下:   ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilter,允许通过_method的表单参数指定这些特殊的HTTP方法(实际上还是通过POST提

    2024年01月25日
    浏览(75)
  • Golang Gin HTTP 请求和参数解析

    我们介绍了Gin框架,并做了Gin框架的安装,完成了第一个Gin工程的创建。 创建Engine 在gin框架中,Engine被定义成为一个结构体,Engine代表gin框架的一个结构体定义, 其中包含了路由组、中间件、页面渲染接口、框架配置设置等相关内容。 默认的Engine可以通过gin.Default进行创建

    2024年02月01日
    浏览(76)
  • 【二、http】go的http基本请求设置(设置查询参数、定制请求头)get和post类似

    结果: 结果: 可以看到其中头部信息已经打印出自己增加的部分内容

    2024年02月05日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包