一、背景

基础架构组推荐说使用shenyu网关,也在一部分内部应该有落地,shenyu的插件非常丰富

二、环境

shenyu:2.5.0 proxys:divide

三、异常

在历史2.4.* 版本中,shenyu对于url的queryParam是不支持中文的,在2.5.0已经修复该问题,但是对于restful中path有中文还是不支持

四、解决

编写自己的shenyu插件

URI uri = exchange.getRequestAttribute().get(Contstans.HTTP_URI);
if (Objects.isNull(uri)) {
return chain.execute(exchange);
}
URI encodeUri = URI.create(uri.toASCIIString());
exchange.getAttributes().put(Contstans.HTTP_URI), encodeUri);
return chain.execute(exchange);

在admin设置顺序为210,即可