我正在使用Ruby + Watir通过Firefox请求页面。
我想记录通过浏览器发出的每个http请求的标题和内容。
是否可以配置代理解决方案来存储此信息,可以将其存储在文件中,也可以直接将其存储到应用程序中?我可以使用诸如squid或nginx之类的东西来记录标题/内容信息吗?
PS:运行Ubuntu x64。
答案 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的附加组件。我不清楚它是捕获所有流量还是只返回直接输入请求的响应,但仍然可以帮助您完成项目。