141: def POST
142: if @env["rack.input"].nil?
143: raise "Missing rack.input"
144: elsif @env["rack.request.form_input"].eql? @env["rack.input"]
145: @env["rack.request.form_hash"]
146: elsif form_data? || parseable_data?
147: @env["rack.request.form_input"] = @env["rack.input"]
148: unless @env["rack.request.form_hash"] = parse_multipart(env)
149: form_vars = @env["rack.input"].read
150:
151:
152: form_vars.sub!(/\0\z/, '')
153:
154: @env["rack.request.form_vars"] = form_vars
155: @env["rack.request.form_hash"] = parse_query(form_vars)
156:
157: @env["rack.input"].rewind
158: end
159: @env["rack.request.form_hash"]
160: else
161: {}
162: end
163: end