Java 如何访问HTTP请求';让身体轻松休息

Java 如何访问HTTP请求';让身体轻松休息,java,http,rest,resteasy,Java,Http,Rest,Resteasy,我正在寻找一种直接访问HTTP请求主体的方法。事实上,在我的代码中,我在主体中接收到不同的参数,我不知道我将接收到什么。此外,我希望尽可能灵活:我处理不同的请求,这些请求可能会有所不同,我希望针对每种类型的请求(GET、POST等)使用一种方法来处理它们。 有没有办法用RESTEasy处理这种级别的灵活性?是否应该切换到其他对象?根据中给出的代码,您可以访问HTTPServletRequest对象 拥有HTTPServletRequest对象后,您应该能够像往常一样访问请求主体。一个例子可以是:

我正在寻找一种直接访问HTTP请求主体的方法。事实上,在我的代码中,我在主体中接收到不同的参数,我不知道我将接收到什么。此外,我希望尽可能灵活:我处理不同的请求,这些请求可能会有所不同,我希望针对每种类型的请求(GET、POST等)使用一种方法来处理它们。 有没有办法用RESTEasy处理这种级别的灵活性?是否应该切换到其他对象?

根据中给出的代码,您可以访问HTTPServletRequest对象

拥有HTTPServletRequest对象后,您应该能够像往常一样访问请求主体。一个例子可以是:

String requestBody = "";
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
try {
    InputStream inputStream = request.getInputStream();
    if (inputStream != null) {
        bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        char[] charBuffer = new char[128];
        int bytesRead = -1;
        while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
            stringBuilder.append(charBuffer, 0, bytesRead);
        }
    } else {
        stringBuilder.append("");
    }
} catch (IOException ex) {
    throw ex;
} finally {
    if (bufferedReader != null) {
        try {
            bufferedReader.close();
        } catch (IOException ex) {
            throw ex;
        }
    }
}
requestBody = stringBuilder.toString();

我试着使用MessageBodyReaderInterceptor,但我甚至不确定它是为了做我想做的。据我所知,通常使用RESTEasy可以编写接受POJO或几个参数的方法,但我不知道它们,所以我无法指定它们。。。