0

我有一个 RESTful Java Web 服务,它接受一个带有“#”的长字符串。

当我在调用时尝试将字符串发送到方法时,字符串在“#”上被拆分,我可以单独检索 [0] 值。

在发送消息之前是完整的,但是在使用这个之后..

req.open("GET","https://localhost:8443/registername/resources/registerName/"+"My#Name", true);
req.send();

是问题所在。

这些是 Web 服务中的前几行...

@GET
@Path("/{message}")
public String validateName(@PathParam("message") String message) throws Exception{
    System.out.println(message);
...}

而且,它单独显示“我的”。

谁能帮我解释为什么会这样?谢谢!

4

3 回答 3

3

在 URL 中,# 符号表示“命名锚”,即本地 javascript,它不会发送到远程服务器,所以当你有 URL 时:

https://localhost:8443/registername/resources/registerName/My#Name

名称未发送到服务器。您需要使用不同的拆分字符。

有关更多信息,请参阅链接中包含井号“#”http://www.hypergurl.com/anchors.html时的含义。

于 2013-04-01T14:50:18.817 回答
2

HTTP post 或 get 不会在 # 之后读取任何内容,在执行 POST 或 GET 之前执行 URLEncode。

于 2013-04-01T15:43:59.983 回答
1

我认为 # 之后的部分不会随 GET 请求一起发送。

于 2013-04-01T14:51:59.200 回答