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 |
| (实验性) 警告!使用此客户端可能会破坏 Puppeteer。请谨慎使用。 |
方法
方法 | 修饰符 | 描述 |
---|---|---|
abort(errorCode, priority) | 中止请求。 备注 要使用此方法,应使用 Page.setRequestInterception() 启用请求拦截。如果未启用,此方法将立即抛出异常。 | |
abortErrorReason() | 中止请求的最新原因 | |
continue(overrides, priority) | 使用可选的请求覆盖继续请求。 备注 要使用此方法,应使用 Page.setRequestInterception() 启用请求拦截。 如果未启用请求拦截,则会立即抛出异常。 | |
continueRequestOverrides() | 如果允许拦截继续(即,未调用 | |
enqueueInterceptAction(pendingHandler) | 将异步请求处理程序添加到处理队列。延迟的处理程序不保证以任何特定顺序执行,但保证在请求拦截最终确定之前解决。 | |
failure() | 访问有关请求失败的信息。 备注 | |
fetchPostData() | 从浏览器获取请求的 POST 数据。 | |
finalizeInterceptions() | 等待挂起的拦截处理程序,然后决定如何满足请求拦截。 | |
frame() | 发起请求的帧,如果导航到错误页面,则为 null。 | |
hasPostData() | 当请求具有 POST 数据时为 True。请注意,当数据太长或无法以解码形式轻松获得时,HTTPRequest.postData() 在此标志为 true 时可能仍然是 undefined。在这种情况下,请使用 HTTPRequest.fetchPostData()。 | |
headers() | 与请求关联的 HTTP 标头的对象。所有标头名称均为小写。 | |
initiator() | 请求的发起者。 | |
interceptResolutionState() | 一个 InterceptResolutionState 对象,描述当前解析操作和优先级。 InterceptResolutionState 包含:action: InterceptResolutionAction priority?: number InterceptResolutionAction 是以下之一: | |
isInterceptResolutionHandled() | 如果已处理拦截解析,则为 | |
如果请求是当前帧导航的驱动程序,则为 True。 | ||
method() | 使用的方法( | |
postData() | 请求的 POST 正文(如果有)。 | |
redirectChain() |
备注
例如,如果网站
如果网站
| |
resourceType() | 包含渲染引擎感知的请求的资源类型。 | |
respond(response, priority) | 使用给定的响应满足请求。 备注 要使用此方法,应使用 Page.setRequestInterception() 启用请求拦截。 如果未启用请求拦截,则会立即抛出异常。 | |
response() | 匹配的 | |
responseForRequest() | 如果允许拦截响应(即,未调用 | |
url() | 请求的 URL |