Ruby's Webrick library includes an HTTP proxy class that you can very easily use. Here's a one-liner that does it all!
ruby -r webrick/httpproxy -e 's = WEBrick::HTTPProxyServer.new(:Port => 8080, :RequestCallback => Proc.new{|req,res| puts req.request_line, req.raw_header, req.body}, :ProxyContentHandler => Proc.new{|req,res| puts "\n -- RESPONSE --\n", res.body, " -- \n\n"}); trap("INT"){s.shutdown}; s.start'
I use this to intercept the requests my iPhone makes so that I can see what various apps are doing. My router doesn't support OpenWRT - otherwise I'd just use tcpdump.