首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Jersey Webresource编码

Java Jersey Webresource编码
EN

Stack Overflow用户
提问于 2013-05-30 18:01:24
回答 1查看 3.1K关注 0票数 1

我在使用网络资源时遇到了一些问题。我希望将编码后的参数传递给我的请求。问题是,当我使用URLEncoder.encode时,它对我的参数进行了很好的编码,但当我执行请求时,jersey会再次对其进行编码。

如果我在没有编码的情况下传递参数,jersey将不会对其进行编码。

这很奇怪。有什么解决方案吗?

下面是我的一些代码:

代码语言:javascript
复制
WebResource webResource = this.resource(this.myURL, login, password);
        webResource.addFilter(new com.sun.jersey.api.client.filter.LoggingFilter());

        String paramEncoded = URLEncoder.encode(param);

        try {
            certificateTool.disableSslChecks();
            userInfosAccessRights = webResource.path("getInfos").
                queryParam("id", paramEncoded).
                get(MyClass.class);
        } catch (UniformInterfaceException exc) {

param为: tvR1AwZ/4YrsCp0TKV3/od+tHeMeB/u8Y68cPpAEwoM=已编码param : tvR1AwZ%2F4YrsCp0TKV3%2Fod%2BtHeMeB%2Fu8Y68cPpAEwoM%3D

请求中的param : tvR1AwZ%252F4YrsCp0TKV3%252Fod%252BtHeMeB%252Fu8Y68cPpAEwoM%253D

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-05-31 02:40:51

当您将参数作为查询参数发送时,它遵循按照the specification进行编码的规则。这些规则与URL编码规则不同,这就是为什么您会看到不同的结果。Jersey正在做正确的事情,您不应该在将参数传递给queryParam()之前对其进行编码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16833207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档