BrowserMob 代理 - 远程服务器返回错误:(404) 未找到

本文关键字:错误 代理 返回 服务器 BrowserMob | 更新日期: 2023-09-27 18:36:10

我正在尝试在 C# 中将BrowserMob ProxySelenium 一起使用。

我在这里尝试了这个解决方案:http://www.adathedev.co.uk/2012/02/automating-web-performance-stats.html

我的代码看起来像这样:

Server server = new Server(@"path_to''browsermob-proxy.bat");
server.Start();
Client client = server.CreateProxy();
client.NewHar("test");
var seleniumProxy = new Proxy { HttpProxy = client.SeleniumProxy };
var profile = new FirefoxProfile();
profile.SetProxyPreferences(seleniumProxy);
IWebDriver driver = new FirefoxDriver(profile);

当我运行测试时,出现以下错误:

System.Net.WebException: 远程服务器返回错误: (404) 未找到。

它在第三行失败。

关于如何使其工作的任何建议?

BrowserMob 代理 - 远程服务器返回错误:(404) 未找到

如果您可以发布更详细的堆栈跟踪,那将非常有用,以及您尝试连接到的远程主机。同时,可以尝试一些方法:

  • 检查您请求的地址。看起来你得到了一个404 - 你可以在没有代理的情况下通过浏览器点击它吗?
  • 确保 browsermob-proxy.bat 安装在第 1 行的路径上(它真的在名为"path_to"的工作目录的子目录中吗?
  • 检查您在临时目录中的写入权限,在 Windows 上为 %TEMP% 或 %TMP%。BMP 在那里写入临时文件。
  • 获取最新的源并构建.bat文件。这些说明位于底部的浏览器mob-proxy github页面上(在"从源创建批处理文件"下)。

希望对您有所帮助!

这很可能是因为您的 Jetty 服务实际上并未运行,您是否从 BrowserMob 批处理文件收到一条消息,说它无法运行? 就我而言,这是端口(默认情况下设置为 8080)的情况,但我在该端口上还有其他内容在侦听。 若要解决此问题,可以传递可选的端口号。

var server = new Server(@"C:'path'to'bin'browsermob-proxy.bat", 9090);

我在python上遇到了同样的问题。当我尝试获取本地主机:8080的内容时,我收到404错误。事实证明,我的另一个应用程序使用相同的8080端口。所以我发现 PID 在 cmd 中输入:netstat -o -n -a | findstr :8080 .然后我只是终止了这个 PID 的过程,浏览器暴徒给了我很好的 HAR。