使用Headless Chrome开发者工具跟踪重定向

时间:2017-08-04 11:55:12

标签: google-chrome google-chrome-devtools google-chrome-headless

我正在使用CDP4J,但我希望此问题与Google Chrome DevTools协议直接相关。

我想获取针对网页和响应代码的HTTP请求列表。因此,这将包括主框架和后续请求中的初始请求,通过3xx重定向或JavaScript源导航。

目前尚不清楚如何可靠地做到这一点。

我尝试了以下内容:

  1. 商店io.webfolder.cdp.session.Session.getFrameId
  2. addEventListener的会话添加回调,记录io.webfolder.cdp.event.Event.NetworkResponseReceived
  3. 类型的每个事件
  4. 其中,过滤帧ID匹配的那些。
  5. 这些过滤器类型为io.webfolder.cdp.type.page.ResourceType.Document
  6. 我有一个我知道的URL返回HTTP 303.但是查看事件,看不到原始URL,而只看到重定向的最终目的地。每个NetworkResponseReceived都具有200的状态。

    如何捕获重定向链?

2 个答案:

答案 0 :(得分:1)

I found the answer. The io.webfolder.cdp.event.network.RequestWillBeSent event has getRedirectResponse, which contains a response if it's a redirect.

答案 1 :(得分:0)

为此,我一直在使用ResponseReceived事件。这似乎可以从事件中获取文档URL:

    if (session.getTargetId().equals(responseReceived.getFrameId()) && ResourceType.Document.equals(responseReceived.getType())) {
        String url = responseReceived.getResponse().getUrl();
        ...
    }