HTTPRequest 类
¥HTTPRequest class
表示页面发送的 HTTP 请求。
¥Represents an HTTP request sent by a page.
签名
¥Signature
export declare abstract class HTTPRequest
备注
¥Remarks
每当页面发送请求(例如网络资源请求)时,Puppeteer 的 page
都会触发以下事件:
¥Whenever the page sends a request, such as for a network resource, the following events are emitted by Puppeteer's page
:
-
request
:当页面发送请求时触发。¥
request
: emitted when the request is issued by the page. -
requestfinished
- 当下载响应正文并且请求完成时触发。¥
requestfinished
- emitted when the response body is downloaded and the request is complete.
如果请求在某个时刻失败,则将触发 requestfailed
事件,而不是 requestfinished
事件。
¥If request fails at some point, then instead of requestfinished
event the requestfailed
event is emitted.
所有这些事件都提供代表发生的请求的 HTTPRequest
实例:
¥All of these events provide an instance of HTTPRequest
representing the request that occurred:
page.on('request', request => ...)
注意:HTTP 错误响应(例如 404 或 503)从 HTTP 角度来看仍然是成功响应,因此请求将通过 requestfinished
事件完成。
¥NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will complete with requestfinished
event.
如果请求收到 'redirect' 响应,则该请求已成功完成并发生 requestfinished
事件,并向重定向的 url 发送新请求。
¥If request gets a 'redirect' response, the request is successfully finished with the requestfinished
event, and a new request is issued to a redirected url.
此类的构造函数被标记为内部构造函数。第三方代码不应直接调用构造函数或创建扩展 HTTPRequest
类的子类。
¥The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the HTTPRequest
class.
属性
¥Properties
属性 | 修饰符 | 类型 | 描述 |
---|---|---|---|
client |
| (实验性)警告!使用此客户端可能会破坏 Puppeteer。谨慎使用。 |
方法
¥Methods
方法 | 修饰符 | 描述 |
---|---|---|
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() 可能仍然未定义。在这种情况下,请使用 HTTPRequest.fetchPostData()。 | |
headers() | 具有与请求关联的 HTTP 标头的对象。所有标头名称均为小写。 | |
initiator() | 请求的发起者。 | |
interceptResolutionState() | 描述当前解析操作和优先级的 InterceptResolutionState 对象。 InterceptResolutionState 包含:行动:InterceptResolutionAction 优先级?:数字 InterceptResolutionAction 是以下之一: | |
isInterceptResolutionHandled() | 如果拦截解析已处理,则为 | |
如果请求是当前帧导航的驱动程序,则为 True。 | ||
method() | 使用的方法( | |
postData() | 请求的帖子正文(如果有)。 | |
redirectChain() |
评论:
例如,如果网站
如果网站
| |
resourceType() | 包含渲染引擎感知到的请求的资源类型。 | |
respond(response, priority) | 使用给定的响应来满足请求。 评论: 要使用此功能,应使用 Page.setRequestInterception() 启用请求拦截。 如果未启用请求拦截,则立即抛出异常。 | |
response() | 匹配的 | |
responseForRequest() | 如果允许拦截响应(即不调用 | |
url() | 请求的 URL |