Is there a way to dump all incoming requests to a Sinatra application in the exact way the application receives the data? Maybe some sort of Rack middleware?
I run thin with the -D
and -V
flags when I want to debug 'things':
$ thin start -p 3000 -R config.ru -D -V
-D, --debug Set debbuging on
-V, --trace Set tracing on (log raw request/response)
If you are trying to get the raw output from a request, use the request method like:
# app running on http://example.com/example
get '/foo' do
request.body # request body sent by the client (see below)
request.scheme # "http"
request.script_name # "/example"
request.path_info # "/foo"
request.port # 80
request.request_method # "GET"
request.query_string # ""
request.content_length # length of request.body
request.media_type # media type of request.body
request.host # "example.com"
request.get? # true (similar methods for other verbs)
request.form_data? # false
request["SOME_HEADER"] # value of SOME_HEADER header
request.referer # the referer of the client or '/'
request.user_agent # user agent (used by :agent condition)
request.cookies # hash of browser cookies
request.xhr? # is this an ajax request?
request.url # "http://example.com/example/foo"
request.path # "/example/foo"
request.ip # client IP address
request.secure? # false
request.env # raw env hash handed in by Rack
end
See "GETTING STARTED" for more information.