如何在Struts自定义拦截器中从POST请求获取请求有效载荷?

时间:2019-07-09 07:42:20

标签: post struts2 http-post

我的应用程序中的每个请求都要经过自定义拦截器,在此它会验证sessionid字段值,该值作为请求有效内容(post方法)中的参数之一传递。

如果它是url参数,那么我们可以使用以下代码段捕获参数。

 Map<String, Object> parameters =
        actionInvocation.getInvocationContext().getParameters();


    String sessionid = parameters.get("sessionId");

如果将“ sessionId”作为部分请求有效载荷发送,那么在拦截器中捕获此参数的方法可能是什么。 我厌倦了下面的代码片段以捕获拦截器,并且它工作正常,但是在动作类的后期阶段,body不可读取。如果我们读取两次,则请求body不可第二次读取。

    public String intercept(ActionInvocation actionInvocation) throws Exception {

        Log.debug(getClass().getName(), "intercept", "Debug enter");
        ActionContext context = actionInvocation.getInvocationContext();
        HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
        RestPostBody restBody= new Gson().fromJson(request.getReader(), RestPostBody.class);

     }

0 个答案:

没有答案