English 中文(简体)
Setting up a Proxy to record Firefox requests
原标题:

I m using Ruby+Watir to request pages through Firefox.

I would like to record the headers and content of every http request made through the browser.

Would it be possible to configure a proxy solution to store this information, either in a file or pipe it straight into an application? Could I use something such as squid or nginx to record header/content information?

PS: Running Ubuntu x64.

问题回答

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

For Windows there is a program called Fiddler that does exactly what you need, so I did a Google search for "Fiddler for Linux" and came up with Charles. Looks pretty strong.

I didn t notice the price tag for the non-trial version of Charles. Another app worth looking into is Poster, an add-on for Firefox. It is not clear to me whether it captures all traffic or only returns response for directly input requests, but still could help you with your project.





相关问题
Ruby parser in Java

The project I m doing is written in Java and parsers source code files. (Java src up to now). Now I d like to enable parsing Ruby code as well. Therefore I am looking for a parser in Java that parses ...

rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

multiple ruby extension modules under one directory

Can sources for discrete ruby extension modules live in the same directory, controlled by the same extconf.rb script? Background: I ve a project with two extension modules, foo.so and bar.so which ...

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...

热门标签