繁体   English   中英

如何使用Jersey(REST)读取GET请求的输入XML?

[英]How to read input XML for GET request using Jersey (REST)?

想要使用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正文?

InputStream实际上读取了请求的主体。 现在,GET请求实际上不应该有一个正文。 所以,可能是运动衫只是剥掉了身体。 此外,您使用什么客户端发出请求?

如果您需要身体,我建议根据您的情况使用POST或PUT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM