BrowserMob。如何通过httpclient配置BrowserMobProxy

时间:2017-06-12 14:30:35

标签: java browsermob browsermob-proxy

我正在尝试使用BrowserMob代理库(net.lightbody.bmp)拦截来自某个默认网站的http请求(例如:" https://default.com")我的问题是如何那样做?

BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(9091, InetAddress.getByName("127.0.0.1"), InetAddress.getByName("default.com"));

然后我创建了一个用于过滤请求的匿名类

 proxy.addRequestFilter(new RequestFilter() {
      @Override
      public HttpResponse filterRequest(HttpRequest request, HttpMessageContents contents, HttpMessageInfo messageInfo) {}...

但没有任何反应。

1 个答案:

答案 0 :(得分:0)

    //start the proxy
    BrowserMobProxy bmproxy = new BrowserMobProxyServer();
    bmproxy.start(); // specify the port and address here.

    Proxy seleniumProxy = ClientUtil.createSeleniumProxy(bmproxy);

    // configure it as a desired capability
    DesiredCapabilities capabilities = new DesiredCapabilities();        

    capabilities.setCapability(CapabilityType.PROXY, seleniumProxy)

    // start the browser up
    WebDriver driver = new ChromeDriver(capabilities);

    // enable more detailed HAR capture, if desired (see CaptureType for the complete list)
    bmproxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);

    // create a new HAR with the label "ebay.de"
    bmproxy.newHar("ebay.de");

    // open ebay.de
    driver.get("http://ebay.de");

    // get the HAR data
    Har har = bmproxy.getHar();
    File harFile = new File("<filename>.har" );
    har.writeTo(harFile);

    driver.quit();

希望它有所帮助。