我通常使用Fiddler来监控HTTP请求和响应,但是如果是使用
Net/HTTP
的Ruby脚本,所有的请求和响应都不会显示在Fiddler中。
有没有办法查看所有请求和响应,如果 Fiddler 做不到,Mac 或 Linux 上的其他工具可以显示吗?
您想在 Ruby 脚本中使用 Net::Http::Proxy 库。
你有的地方
Net::Http.start(uri.host, uri.port)
你想要
Net::HTTP::Proxy('127.0.0.1', '8888').start(uri.host, uri.port)
。 。 。假设 Fiddler 运行在端口 8888 上,就像它开箱即用一样。
您尝试过WireShark吗?
也许你可以通过使用代理让 Fiddler 工作 - 例如发送 net/http 到 127.0.0.1:8888。
有 2 种方法可以从 Ruby 代码中捕获和解密 HTTPS 流量。
proxy_addr = 'localhost'
proxy_port = 9090 # make sure it's a current port of your proxy app
Net::HTTP.new('example.com', nil, proxy_addr, proxy_port).start { |http|
# always proxy via localhost:9090
}
env SSL_CERT_DIR=/path/to/certs/folder ruby my_code.rb
env SSL_CERT_FILE=/path/to/cert.crt ruby my_code.rb
缺点:可以,但是你必须手动修改代码,这很耗时。
在这种情况下,我将使用 Firefox (Firebug) 或 Chrome(内置开发人员工具)来执行此操作
(更新:评论中的有效答案)