setUserAgent 在 HtmlUnit 2.28 中不再可用?

setUserAgent no longer avialble in HtmlUnit 2.28?

下面的代码在 HtmlUnit 2.27 中工作正常,但是 setUserAgent 方法在 2.28 中不可用现在设置用户代理的正确方法是什么?

BrowserVersion bv = BrowserVersion.CHROME;
bv.setUserAgent(
        "Mozilla/5.0 (Linux; Android 6.0; XT1063 Build/MPBS24.65-34-4; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36");

从 2.28 开始,不再可以在浏览器版本中修改构建。这有多种原因,我们在我们的邮件列表中讨论了可能的修复方法。

最后我们使用工厂模式来设置新的浏览器配置并使它们之后不可更改。

final BrowserVersionBuilder myChromeBuilder = new BrowserVersion.BrowserVersionBuilder(BrowserVersion.CHROME);
// do your setup here
myChromeBuilder.setXXX(..);
final BrowserVersion myChrome = myChromeBuilder.build();

如果你喜欢也可以使用更流畅的代码风格

final BrowserVersion myChrome = new BrowserVersion.BrowserVersionBuilder(BrowserVersion.CHROME)
    // do your setup here
    .setXXX(..)
    .build();