跳至主要内容
版本:22.5.0

HTTPRequest 类

表示页面发送的 HTTP 请求。

签名:

export declare abstract class HTTPRequest

备注

每当页面发送请求(例如网络资源)时,Puppeteer 的 page 会发出以下事件

  • request:当页面发出请求时发出。 - requestfinished - 当响应主体下载完成且请求完成时发出。

如果请求在某个时刻失败,则会发出 requestfailed 事件,而不是 requestfinished 事件。

所有这些事件都提供一个 HTTPRequest 实例,表示发生的请求

page.on('request', request => ...)

注意:HTTP 错误响应(例如 404 或 503)从 HTTP 的角度来看仍然是成功的响应,因此请求将使用 requestfinished 事件完成。

如果请求收到“重定向”响应,则请求将使用requestfinished事件成功完成,并向重定向的 URL 发出新的请求。

此类的构造函数标记为内部。第三方代码不应直接调用构造函数,也不应创建扩展HTTPRequest类的子类。

属性

属性修饰符类型描述
client只读CDPSession警告!使用此客户端可能会破坏 Puppeteer。谨慎使用。

方法

方法修饰符描述
abort(errorCode, priority)中止请求。
abortErrorReason()中止请求的最新原因
continue(overrides, priority)使用可选的请求覆盖继续请求。
continueRequestOverrides()如果允许拦截继续(即,不调用abort()respond()),则将使用的ContinueRequestOverrides
enqueueInterceptAction(pendingHandler)将异步请求处理程序添加到处理队列。延迟的处理程序不保证以任何特定顺序执行,但保证在请求拦截完成之前解析。
failure()访问有关请求失败的信息。
fetchPostData()从浏览器获取请求的 POST 数据。
finalizeInterceptions()等待挂起的拦截处理程序,然后决定如何完成请求拦截。
frame()发起请求的框架,或导航到错误页面时为 null。
hasPostData()当请求具有 POST 数据时为真。请注意,当数据过长或无法以解码形式轻松获得时,HTTPRequest.postData() 在此标志为真时可能仍未定义。在这种情况下,请使用 HTTPRequest.fetchPostData()
headers()包含与请求关联的 HTTP 标头的对象。所有标头名称都为小写。
initiator()请求的发起者。
interceptResolutionState()

一个 InterceptResolutionState 对象,描述当前的解析操作和优先级。

InterceptResolutionState 包含:action: InterceptResolutionAction priority?: number

InterceptResolutionAction 是以下之一:abortrespondcontinuedisablednonealready-handled

isInterceptResolutionHandled()如果拦截解析已处理,则为 true,否则为 false
isNavigationRequest()如果请求是当前帧导航的驱动程序,则为 true。
method()使用的方法(GETPOST 等)。
postData()请求的正文(如果有)。
redirectChain()redirectChain 是为获取资源而发起的请求链。
resourceType()包含渲染引擎感知到的请求的资源类型。
respond(response, priority)使用给定的响应来满足请求。
response()匹配的 HTTPResponse 对象,如果响应尚未收到,则为 null。
responseForRequest()如果允许拦截响应(即,不调用 abort()),则使用的 ResponseForRequest
url()请求的 URL