0

我正在制作和REST 客户端,它接收带有数据的POST以用作查询的过滤器。我的问题是当客户向我发送一个“%”来搜索所有值时。

泽西岛向我发送以下错误

11:36:35,857 ERROR [Jersey REST Service]:260 - Servlet.service() for servlet Jersey REST Service threw exception
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "%ip%"

产生此错误的代码是:

@POST
    @Path("/Comercial/{campo}")
    @Produces("application/json; charset=utf-8")
    public static Response findAll(
                @PathParam(value = "campo") String campo,
                @FormParam("filtro") String filtro){

        Object resposta = null;

        resposta = new JSONArray();
        campo = campo.substring(7);
        resposta = SequenciaControl.findDataByTable(campo,filtro);

        return Retorno.send(resposta);
    }

如果我使用@QueryParam 将其作为 GET 接收,则此方法有效,但我需要将其作为 POST

谢谢!

4

1 回答 1

1

%25在将其作为请求发送时,必须使用该百分比进行转义。

所以,"%ip%"应该是"%25ip%25"

于 2012-06-21T08:37:33.597 回答