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