想要使用jax-rs读取get方法的输入xml,我知道这很奇怪,但这是我的要求,如果用户发送REST GET方法的主体,我想显示用户400(错误请求)。因此,如果用户发送了一个正文,则抛出一个错误的请求,我需要先读取正文。
来自代码的摘录:
@GET
@Path("{ids}")
@Consumes({ MediaType.APPLICATION_XML, MediaType.TEXT_XML, "multipart/form-data", "application/x-www-form-urlencoded" })
@Produces({ MediaType.APPLICATION_XML, MediaType.TEXT_XML })
public Response read(InputStream inputStream, @PathParam("ids") String Ids, @Context HttpHeaders headers,
@Context HttpServletRequest httpServletRequest, @Context HttpServletResponse httpServletResponse,
@Context UriInfo uriInfo)
{.........//Code here
所以我尝试读取inputStream,如:
//Some Code here
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((line = reader.readLine()) != null)
sb.append(line).append("\n");
}
catch (Exception e)
{
//exception handling
}
//Some code here
请求是否包含正文,在读取inputStream后,它总是返回空白。
所以我的问题是如何检查是否在GET请求中发送了xml正文?
答案 0 :(得分:2)
InputStream实际上读取了请求的主体。现在,GET请求实际上不应该有一个正文。所以,可能是运动衫只是剥掉了身体。另外,您使用什么客户端发出请求?
如果您需要身体,我建议您根据自己的情况使用POST或PUT。