Usage

Hi, I'm here to help you debug your HTTP. To get started, install me.

$ gem install hi

Now start me up:

$ hi
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop

If you don't like my default port, try something else:

$ hi 1234
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:1234, CTRL+C to stop

Let's start debugging! Just send a request my way and I'll tell you everything I know about it.

$ curl localhost:3000/foo/bar\?message=hello

"GET http://localhost:3000/foo/bar?message=hello (2013-12-27 14:18:16 -0800)"
{
              :host => "localhost",
                :ip => "127.0.0.1",
              :port => 3000,
    :request_method => "GET",
            :scheme => "http",
               :url => "http://localhost:3000/foo/bar?message=hello",
      :query_string => "message=hello",
              :body => "",
    :content_length => nil,
        :media_type => nil,
           :referer => nil,
        :user_agent => "curl/7.30.0",
               :xhr => false,
           :headers => {
           "HTTP_VERSION" => "HTTP/1.1",
        "HTTP_USER_AGENT" => "curl/7.30.0",
              "HTTP_HOST" => "localhost:3000",
            "HTTP_ACCEPT" => "*/*"
    }
}

The fancier your request, the better.

$ curl -H 'X-Requested-With: XMLHttpRequest' -d"message=hello" localhost:3000

"POST http://localhost:3000/ (2013-12-27 14:19:24 -0800)"
{
              :host => "localhost",
                :ip => "127.0.0.1",
              :port => 3000,
    :request_method => "POST",
            :scheme => "http",
               :url => "http://localhost:3000/",
      :query_string => "",
              :body => "message=hello",
    :content_length => "13",
        :media_type => "application/x-www-form-urlencoded",
           :referer => nil,
        :user_agent => "curl/7.30.0",
               :xhr => true,
           :headers => {
                 "HTTP_VERSION" => "HTTP/1.1",
              "HTTP_USER_AGENT" => "curl/7.30.0",
                    "HTTP_HOST" => "localhost:3000",
                  "HTTP_ACCEPT" => "*/*",
        "HTTP_X_REQUESTED_WITH" => "XMLHttpRequest"
    }
}

Am I missing something? Feel free to send a pull request my way.