Java 发送到Rest webservice之前解析和编码URL

Java 发送到Rest webservice之前解析和编码URL,java,rest,url-encoding,Java,Rest,Url Encoding,我正在开发一个应用程序,在其中使用向REST web服务发送get请求 @RequestMapping(value=“myURLpattern”,method=RequestMethod.GET,products=“image/png”) 我遇到了一个错误,如果有人在URL查询字符串中输入#,它就会从那里中断 http://myserver.com:8080/csg?x=1&y=2#4&z=32&p=1 因此,我尝试通过filterHTTPRequestWrapper对其进行编码,以便使用url

我正在开发一个应用程序,在其中使用向REST web服务发送get请求
@RequestMapping(value=“myURLpattern”,method=RequestMethod.GET,products=“image/png”)

我遇到了一个错误,如果有人在URL查询字符串中输入#,它就会从那里中断
http://myserver.com:8080/csg?x=1&y=2#4&z=32&p=1

因此,我尝试通过filter
HTTPRequestWrapper
对其进行编码,以便使用
urlcoder
替换为
%23

我的问题是编码URL,首先我需要读取
URL(request.getRequestURL())
。 并且getURL再次无法读取#之后的字符串。
request.getRequestURL()
将仅返回
(http://myserver.com:8080/csg?x=1&y=2)


在发送到REST web服务之前,是否有其他方法来解析完整的url并对其进行编码?

这不是一个bug。选中此项:

url查询字符串中的#错误。在发送到服务器之前,您应该在客户端对其进行编码。看看这个: 它是在asp中,但是您应该找到与java等效的


让您开始的东西可以是这个

谢谢您的参考,所以如果有人在Html字段中输入#如serial number:12#ser4,那么我们无法在服务器端解析它。对于上面的场景,我们将如何在客户端处理itEncode。看看javascriopt中的encodeURIComponent函数。编码元件('12#ser4');将“12#ser4”变成“12%23ser4”,这是您应该发送到服务器的内容,因此您的请求如下所示: