我在服务中使用@ javax.ws.rs.Path(" / {input:。+}")的rest方法接受"输入"的任何值。 pathparam。示例代码在这里。
@GET
@Path("/{input:.+}")
@Produces({ XML })
public Response getByInput(@PathParam("input") @Encoded String input,
@Context javax.ws.rs.core.UriInfo uriInfo)
@Encoded注释将阻止解码pathparam,queryparam和formparams。 但在我的情况下,如果输入包含
%2B
已被解码为+
%2F
已编入%252F
。 使用SoapUI测试其余服务,以下是示例请求:
Req 1: GET /rest/Ca%2B2siaeevAg9BkOLKkMmgwlZ20%3D
the value of input = Ca+2siaeevAg9BkOLKkMmgwlZ20=
But i am expecting Ca%2B2siaeevAg9BkOLKkMmgwlZ20%3D
Req 2: GET /rest/Ca%2F2siaeevAg9BkOLKkMmgwlZ20%3D
the value of input = Ca%252F2siaeevAg9BkOLKkMmgwlZ20=
But i am expecting Ca%2F2siaeevAg9BkOLKkMmgwlZ20%3D
为什么%2B和%2F的行为有所不同?
你能帮助我吗,我必须在我的项目中解决这个问题。