jvppeteer
jvppeteer copied to clipboard
如何拦截请求响应?
拦截请求响应。一般的情况下,通过
page.setRequestInterception(true); page.onRequest(request->{ System.err.println("url:" + request.url()); request.continueRequest(); });
可以拦截page的请求响应。
但这个page,如果不是程序里newPage()出来的(比如用户手动创建的tab page,点击a标签创建的page)。程序无法自动添加监听事件。
我尝试在这样去做:
browser.onTrgetcreated((target) -> { System.err.println("target type: "+target.type()); if ("page".equals(target.type())) { System.err.println("新的网页Tab被创建"); Page _page = target.page(); _page.setRequestInterception(true); _page.setDefaultNavigationTimeout(300*1000); _page.onRequest(request->{ System.err.println("url:" + request.url()); request.continueRequest(); }); } });
但 会导致browser.newPage()阻塞
这个问题应该怎么解决呢?
browser.newPage是主线程的,你看看是什么原因造成主线程阻塞,browser.onTargetCreate是其他线程的
1.0.8版本有问题,1.1.0是ok的