If you don t want a proxy, you could just use tcpdump e.g.
tcpdump -i en0 -n -s 0 -w output.pcap
You can then retrospectively look at all traffic in wireshark etc.
The BrowserMob proxy might be a good fit for you (runs as a jar file)
You could also roll your own in Ruby (but only works with HTTP, not HTTPS)
e.g.
require rubygems
require webrick/httpproxy
@proxy_port = ARGV[0] || 9090
# Optional flags
@print_headers = false
@print_body = true
server = WEBrick::HTTPProxyServer.new(
:Port => @proxy_port,
:AccessLog => [],
:ProxyContentHandler => Proc.new do |req,res|
puts "-"*75
puts ">>> #{req.request_line.chomp}
"
req.header.keys.each { |key| puts "#{key.capitalize}: #{req.header[key]}" if @print_headers }
puts "<<<" if @print_headers
puts res.status_line if @print_headers
res.header.keys.each { |key| puts "#{key.capitalize}: #{res.header[key]}" if @print_headers }
puts res.body unless res.body.nil? or !@print_body
end
)
trap("INT") { server.shutdown }
server.start