我正在寻找一种直接访问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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句