我尝试使用 Jersey 或 Resteasy 中的任何一个发送带有一些 URL 字符串作为参数的 GET 请求Response response = new ResteasyClientBuilder() .build() .target(UriBuilder.fromPath("https://foo.bar")) .queryParam("url", "http://hostname.com/The%20URL%20with spaces.jpg") .request() .get();两种实现都发送https://foo.bar?url=http%3A%2F%2Fhostname.com%2FThe%20URL%20with%20spaces.jpg我假设原始空间被转义,%20而原始空间%20在查询参数中被双重转义。但事实并非如此。原始空间和%20混合,在服务器端,我得到未转义的字符串,所有字符串都%20转换为空格,并且字符串被破坏。根据Resteasy 的源代码,它“保持编码值“%...”和模板参数完整”。但是我在 JEE 文档中没有找到任何关于这种行为的词。我应该在将字符串添加为参数之前对其进行转义吗?我应该使用什么转义器来确保它转义所有"%..." and template parameters,并且它在参数中转义的所有内容都被服务器成功转义?
添加回答
举报
0/150
提交
取消