发送http请求报http400错误:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

分类:计算机 | Web开发 | 综合 1983
更新:2021-07-16 12:58:25
编辑

1 异常说明

使用环境:Windows Tomcat8.5.57

在调用tomcat中的一个http接口时报了http400错误:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

2 异常分析

tomcat高版本会严格按照RFC 3986规范解析http请求地址,如果请求地址中包含了一些不合法的字符,会报上面的错误。

我这边请求地址里有一个参数填的是一个windows文件的路径,路径中用了反斜杠"\"作为分隔符,如下:

D:\NoSynchronous\test\xxx.txt

应该是反斜杠不符合规范。

3 异常解决

把文件路径中的反斜杠换成了单斜杠"/"或者双斜杠"//"就可以了。

4 其它

如果确实需要在http请求地址中输入一些特殊字符的话,可以通过这篇文章里的方法来解决这个问题,不过这个方法对于反斜杠这个特殊字符好像不起作用。