URLEncoder.encode转码GET请求参数

  • 一、接入第三方服务器,Tomcat报错:非法参数异常
  • 二、Tomcat 新版本(7.0.76开始)新特性:严格按照 RFC 3986规范进行访问解析
  • 三、解决方法,请求时对参数值转码
  • 四、对于tomcat可修改配置,扩展特殊字符

一、接入第三方服务器,Tomcat报错:非法参数异常

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:483)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:852)

二、Tomcat 新版本(7.0.76开始)新特性:严格按照 RFC 3986规范进行访问解析

RFC 3986 规范定义了 URL 中只允许包含英文字母(a-zA-Z)数字(0-9)-_.~4个特殊字符以及所有保留字符! * ’ ( ) ; : @ & = + $ , / ? # [ ]

三、解决方法,请求时对参数值转码

URLEncoder.encode(s, "UTF-8")

四、对于tomcat可修改配置,扩展特殊字符

package org.jeecg.config.init;import org.apache.catalina.Context;
import org.apache.tomcat.util.scan.StandardJarScanner;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @Description: TomcatFactoryConfig* @author: scott* @date: 2021年01月25日 11:40*/
@Configuration
public class TomcatFactoryConfig {/*** tomcat-embed-jasper引用后提示jar找不到的问题*/@Beanpublic TomcatServletWebServerFactory tomcatFactory() {TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {((StandardJarScanner) context.getJarScanner()).setScanManifest(false);}};factory.addConnectorCustomizers(connector -> {connector.setProperty("relaxedPathChars", "[]{}\"");connector.setProperty("relaxedQueryChars", "[]{}\"");});return factory;}
}

URLEncoder.encode转码GET请求参数相关推荐

  1. Spring源码解析 -- SpringWeb请求参数获取解析

    Spring源码解析 – SpringWeb请求参数获取解析 简介 在文章:Spring Web 请求初探中,我们看到最后方法反射调用的相关代码,本篇文章就探索其中的参数是如何从请求中获取的 概览 方 ...

  2. java:URLEncoder.encode只转码中文

    原文:Java只给汉字转URLEncoder 转码起因:线上图片显示异常,因为IOS无法显示带中文的图片链接,在之前的文章中介绍了通过转码进行正常显示,后面发现原来的那个转码有问题,不单单是对中文进行 ...

  3. URLEncoder.encode()解决中文乱码

    tomcat服务器上向指定 URL 发送GET/POST方法的请求中文编码问题解决 使用URLEncoder.encode()方法解决Tomcat发送HTTP请求中文参数乱码的问题 在Javaweb项 ...

  4. 前端请求参数中文乱码问题

    1.以post方式提交 以post方式提交的请求参数中文乱码问题可以通过后端的编码过滤器解决. 可以直接使用springMVC中的编码过滤器,只需在web.xml中添加过滤器的配置即可. <fi ...

  5. android (java) 网络发送get/post请求参数设置

    最近做了一段时间android网络编程方面的项目,现在总结一下android中网络连接方式, android中网络通信分为socket编程和http编程,这里只介绍htt方面.网络请求方式可分为get ...

  6. URLEncoder.encode(str,编码) new URLDecoder().decode(str,编码)

    try   {                                 String enUft = URLEncoder.encode("广东省福利彩票开奖信息网", & ...

  7. http协议,http状态码,请求,响应

    http 简介 http 是一种超文本传输协议(Hyper Text Transfer Protocol), 可以用来在络中把服务器消息传输到我们的浏览器中.并且Http 协议是一个基于 TCP/IP ...

  8. java爬虫---问卷星自动提交问卷请求参数(jqsign,jqnonce等)解密

    以https://www.wjx.cn/jq/35713991.aspx这个问卷页为例 填完问卷打开控制台,转到network并且勾选preserver log(不然等会儿提交的请求看不到),点提交, ...

  9. URLEncoder.encode方法解析

    jar包:rt.jar 解释: 当content-type=x-www-form-urlencoded,使用get发送请求参数中含中文时,使用该方法将中文转换: String keywords = U ...

最新文章

  1. 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
  2. 爬取了1W个字节跳动岗位信息,我发现了什么?
  3. 谷歌CEO为「Jeff Dean开除研究员」事件道歉,却引发持续争议
  4. 双指针算法(三):力扣【167.两数之和 | 经典例题
  5. 批处理之字符串处理和数值计算
  6. volta架构 微型计算机,性能大爆炸 NVIDIA新GPU架构曝光
  7. 院士学术不端,怎么处理?文件来了:中国工程院院士失范行为处理办法
  8. Linux学习资源汇总
  9. iOS-格式化金额,三位一逗号
  10. 这位 50 岁的海归程序员,当着老板还在天天改 Bug
  11. win11可以支持win10驱动吗 Windows11更新驱动的步骤方法
  12. Squeeze not supported yet!
  13. pd 写入数据库_使用PD创建数据库模型,并最终将sql语句导入到MySQL
  14. 开发者从应用程序商店难以赚到真金白银
  15. maya藤蔓插件_MAYA快速打造藤蔓生长的路径动画教程
  16. CTEX 各种命令、符号
  17. 记录解决Jetson使用sdkmanger安装jetpack时ssh连接不上的问题以及W: GPG error: file:/var/cuda-repo-l4t-10-2-local:
  18. echarts添加背景图
  19. GB28181监控视频统一汇聚平台LiveGBS将海康大华华为宇视等厂家监控设备统一接入后如何生成固定播放链接或者固定的流地址可以直接无插件播放或者拉取
  20. 开发工具篇第三讲:Maven从入门到实战

热门文章

  1. 【实战篇】轻松用 Python 进行报表自动化
  2. MATLAB简单功能使用
  3. 如何玩转adobe photoshop 2023 beta的ai绘画
  4. https://mp.weixin.qq.com/s/j7YdtmyuzBFRK1BViDtp2w
  5. 2021年电工(初级)考试试卷及电工(初级)模拟试题
  6. 通过shell命令访问HDFS
  7. C语言实现-水仙花数中的pow(5, 3) = 124 的问题
  8. java 自定义AfterReturning切面注解
  9. Java入门第74课——获取String对象的长度
  10. 亚马逊规则漏洞下的中国创业者机会