diff --git a/src/kemal/param_parser.cr b/src/kemal/param_parser.cr index e210873..d2893cb 100644 --- a/src/kemal/param_parser.cr +++ b/src/kemal/param_parser.cr @@ -43,8 +43,14 @@ module Kemal private def parse_body content_type = @request.content_type return unless content_type - @body = parse_part(@request.body) if content_type.starts_with?(URL_ENCODED_FORM) - parse_file_upload if content_type.starts_with?(MULTIPART_FORM) + if content_type.try(&.starts_with?(URL_ENCODED_FORM)) + @body = parse_part(@request.body) + return + end + if content_type.try(&.starts_with?(MULTIPART_FORM)) + parse_file_upload + return + end end private def parse_query @@ -69,7 +75,6 @@ module Kemal @body[upload.name] = upload.body.gets_to_end end end - @body = parse_part(@request.body) end # Parses JSON request body if Content-Type is `application/json`.