Spring Boot 2 Undertow,不起作用设置UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL

时间:2018-09-07 07:18:13

标签: spring-boot

Springboot 2.0

浏览类型引用时:localhost:9093 /?foo = bar | bar

  

返回错误:原因:java.net.URISyntaxException:非法   查询中的字符

我要添加一个附加选项:

@Component
public class MyWebServerCustomizer implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
    @Override
    public void customize(UndertowServletWebServerFactory factory) {
        factory.addBuilderCustomizers(builder-> builder.setServerOption(UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL, Boolean.TRUE));
    }        
}

不起作用,仍然是例外。

我在做什么错了?

谢谢。

2 个答案:

答案 0 :(得分:2)

left join

答案 1 :(得分:0)

您应该对参数进行编码

myUrl = "localhost:9093/?" + URLEncoder.encode("foo=bar|bar", "UTF-8");

请参考here进行url编码。假设您要发送bar | bar。您可以发送为bar%7Cbar。

%7C是PIPE字符。