jvppeteer icon indicating copy to clipboard operation
jvppeteer copied to clipboard

如何拦截请求响应?

Open netsafer opened this issue 5 years ago • 2 comments

拦截请求响应。一般的情况下,通过 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()阻塞

这个问题应该怎么解决呢?

netsafer avatar Oct 11 '20 02:10 netsafer

browser.newPage是主线程的,你看看是什么原因造成主线程阻塞,browser.onTargetCreate是其他线程的

fanyong920 avatar Oct 12 '20 01:10 fanyong920

1.0.8版本有问题,1.1.0是ok的

netsafer avatar Oct 14 '20 15:10 netsafer