0

クエリのフィルターとして使用するデータを含むPOSTを受信するREST クライアントを作成しています。私の問題は、クライアントがすべての値を検索するために「%」を送信したときです。

ジャージーは私に次のエラーを送ります

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 に答える