protected void parseBodyParams()

in impl/src/main/java/org/apache/peeco/impl/PeecoChannelHandler.java [175:209]


    protected void parseBodyParams(HttpRequest nettyRequest, Request request)
    {
        if (nettyRequest.method().equals(HttpMethod.POST))
        {
            HttpPostRequestDecoder decoder = null;
            try
            {
                decoder = new HttpPostRequestDecoder(factory, nettyRequest);
                for (InterfaceHttpData data : decoder.getBodyHttpDatas())
                {
                    if (data.getHttpDataType() == InterfaceHttpData.HttpDataType.Attribute)
                    {
                        Attribute attr = (Attribute) data;
                        List<String> values = request.bodyParameters().computeIfAbsent(data.getName(), k -> new ArrayList<>());

                        try
                        {
                            values.add(attr.getValue());
                        }
                        catch (IOException ex)
                        {
                            throw new RuntimeException("Failed to parse attribute values from Netty Request body to " + Request.class.toString());
                        }
                    }
                }
            }
            finally
            {
                if (decoder != null)
                {
                    decoder.destroy();
                }
            }
        }
    }