【问题标题】:String getting split on '#' when passing to a RESTful Web Service in Java through GET method通过 GET 方法传递到 Java 中的 RESTful Web 服务时,字符串在“#”上被拆分
【发布时间】:2013-04-01 14:44:27
【问题描述】:

我有一个 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);
...}

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

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

【问题讨论】:

    标签: java web-services rest get jersey


    【解决方案1】:

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

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

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

    请参阅What is it when a link has a pound "#" sign in ithttp://www.hypergurl.com/anchors.html 了解更多信息。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-09
          • 1970-01-01
          • 2012-12-27
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多