SpringCloud 查询字符串编码
2023-11-23 11:51 更新
在处理传入请求时,查询参数将被解码,以便可以在Zuul过滤器中进行修改。然后将它们重新编码,在路由过滤器中重建后端请求。例如,如果结果是使用Javascript的encodeURIComponent()
方法编码的,则结果可能不同于原始输入。虽然这在大多数情况下不会引起问题,但某些web服务器可能对复杂查询字符串的编码很挑剔。
要强制对查询字符串进行原始编码,可以将特殊标志传递给ZuulProperties
,以便使用HttpServletRequest::getQueryString
方法按原样使用查询字符串,如以下示例所示:
application.yml。
zuul: forceOriginalQueryStringEncoding: true
该特殊标志仅适用于SimpleHostRoutingFilter
。另外,您松开了使用RequestContext.getCurrentContext().setRequestQueryParams(someOverriddenParameters)
轻松覆盖查询参数的功能,因为现在直接在原始HttpServletRequest
上获取了查询字符串。
以上内容是否对您有帮助:
更多建议: