Настройка прокси для записи запросов Firefox - PullRequest
0 голосов
/ 05 февраля 2010

Я использую Ruby + Watir для запроса страниц через Firefox.

Я хотел бы записать заголовки и содержимое каждого http-запроса, сделанного через браузер.

Можно ли настроить прокси-решение для хранения этой информации, либо в файле, либо направить ее прямо в приложение? Могу ли я использовать что-то вроде squid или nginx для записи заголовка / информации о содержимом?

PS: работает Ubuntu x64.

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Если вы не хотите использовать прокси, вы можете просто использовать tcpdump, например. tcpdump -i en0 -n -s 0 -w output.pcap

Затем вы можете ретроспективно просмотреть весь трафик в Wireshark и т. Д.

Возможно, вам подойдет прокси BrowserMob (работает как файл jar)

Вы также можете свернуть свои собственные в Ruby (но работает только с HTTP, а не HTTPS) например,

  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
0 голосов
/ 05 февраля 2010

Для Windows есть программа под названием Fiddler , которая делает именно то, что вам нужно, поэтому я сделал поиск в Google по запросу " Fiddler для Linux " и придумал Charles.Выглядит довольно сильно.

Я не заметил ценник для не-пробной версии Чарльза.Еще одно приложение, на которое стоит обратить внимание - это Poster , дополнение для Firefox.Мне не ясно, захватывает ли он весь трафик или только возвращает ответ на запросы прямого ввода, но все же может помочь вам в вашем проекте.

...