设置代理以记录Firefox请求

时间:2010-02-05 08:46:40

标签: ruby firefox ubuntu proxy watir

我正在使用Ruby + Watir通过Firefox请求页面。

我想记录通过浏览器发出的每个http请求的标题和内容。

是否可以配置代理解决方案来存储此信息,可以将其存储在文件中,也可以直接将其存储到应用程序中?我可以使用诸如squid或nginx之类的东西来记录标题/内容信息吗?

PS:运行Ubuntu x64。

2 个答案:

答案 0 :(得分:1)

如果您不想要代理,可以使用tcpdump,例如 tcpdump -i en0 -n -s 0 -w output.pcap

然后,您可以追溯查看wireshark等的所有流量。

BrowserMob代理可能非常适合您(作为jar文件运行)

您也可以在Ruby中滚动自己(但只适用于HTTP,而不是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}\n"
        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

答案 1 :(得分:0)

对于Windows,有一个名为Fiddler的程序可以完全满足您的需求,因此我搜索了“Fiddler for Linux”,并提出了Charles。看起来很强大。

我没有注意到Charles的非试用版的价格标签。另一个值得研究的应用是Poster,这是Firefox的附加组件。我不清楚它是捕获所有流量还是只返回直接输入请求的响应,但仍然可以帮助您完成项目。