Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java资源编码_Java_Encoding_Jersey_Params_Webresource - Fatal编程技术网

Java资源编码

Java资源编码,java,encoding,jersey,params,webresource,Java,Encoding,Jersey,Params,Webresource,我在使用webresource时遇到一些问题。我想将编码参数传递给我的请求。 问题是,当我使用URLEncoder.encode时,它对我的参数进行了很好的编码,但当我执行请求时,jersey将再次对其进行编码 如果我在未编码的情况下传递参数,jersey将不会对其进行编码 这很奇怪。有什么解决办法吗 下面是我的一些代码: WebResource webResource = this.resource(this.myURL, login, password); webResour

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

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

这很奇怪。有什么解决办法吗

下面是我的一些代码:

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) {
参数为:tvR1AwZ/4YrsCp0TKV3/od+THEMB/u8Y68cPpAEwoM= 编码参数:tvR1AwZ%2F4YrsCp0TKV3%2Fod%2BTHEMB%2Fu8Y68cPpAEwoM%3D

请求中的参数:tvR1AwZ%252F4YrsCp0TKV3%252Fod%252Bthereb%252Fu8Y68cPpAEwoM%253D


谢谢

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