The valid characters are defined in RFC 7230 and RFC 3986 解决方案

The valid characters are defined in RFC 7230 and RFC 3986 解决方案)

问题背景

Java在做接口的时候,接口测试经常使用postman进行测试,在测试的时候,就会经常出现如下的问题

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
	at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:192)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

在这里插入图片描述
在postman中的请求如下
在这里插入图片描述

问题原因

出现这类问题的原因是因为这个请求参数在中存在特殊的符号导致的,上面的案例中的{}就是特殊的字符,解决完这个特殊符合的问题之后这个问题就能解决了

解决方案

方案一

使用postman的时候,不是用param传递参数,修改使用body的form-data传输
在这里插入图片描述
此时在地址栏就没有这一堆参数了,可以对比第一幅图看出,这样请求的状态就是200了,问题解决,
如果提示参数找不到,就是用 x-www-form-urlencoded即可

方案二

测试的时候使用java代码测试,可以直接使用main方法,然后把这些字符串转义成字符串即可

方案三

开发的时候传递参数直接使用json在body中传输参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值