5

我希望收集 HTTP 请求的正文,包括页面重定向到其他地方时。显然,我可以使用非 Fetch 域机制,例如Network.getResponseBody. 这适用于重定向链中的“最终”页面,但不能用于中间页面,因为 Chrome 在转到下一个重定向目标时似乎会转储内容。

所以,我实现了(使用 PHP,但细节无关紧要,如您所见)。此方法调用不返回错误。然后做 a 之后,我等待一个包含 members 的事件,然后发送a (使用from the ),我得到的响应取决于对页面本身的实际响应是什么。因此,对于 a ,我得到一个响应正文(欢呼),但对于 30x (等),我总是得到带有消息的错误代码。现在,发出该错误消息(在我看来)与Fetch.enable( { patterns: [ { requestStage: Response } ] } )Page.navigateFetch.requestPausedrequestIdresponseStatusCoderesponseHeadersFetch.getResponseBodyrequestIdFetch.requestPaused200301302-32000"Can only get response body on requests captured after headers received"Fetch.requestPaused事件数据,即使 Chrome DevTools 协议 (CDP) 并非旨在捕获 HTTP 重定向页面的正文。顺便说一句,带有内容触发重定向(通过 META 元素或 JavaScript)的页面可以被捕获,我认为是因为它们返回 200 状态代码。

那么,问题是我正在遵循的调用顺序还是返回的错误消息中的问题,Fetch.getResponseBody我是否正确地假设 CDP 不打算捕获重定向链中的文档主体(显然,除了最后一个)?

4

0 回答 0