puppeteer/next/api/puppeteer.httprequest/index.html

33 lines
82 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-api/puppeteer.httprequest" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.0.1">
<title data-rh="true">HTTPRequest class | Puppeteer</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pptr.dev/next/api/puppeteer.httprequest"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:counter" content="3"><meta data-rh="true" property="og:title" content="HTTPRequest class | Puppeteer"><meta data-rh="true" name="description" content="Represents an HTTP request sent by a page."><meta data-rh="true" property="og:description" content="Represents an HTTP request sent by a page."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pptr.dev/next/api/puppeteer.httprequest"><link data-rh="true" rel="alternate" href="https://pptr.dev/next/api/puppeteer.httprequest" hreflang="en"><link data-rh="true" rel="alternate" href="https://pptr.dev/next/api/puppeteer.httprequest" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://DVKY664LG7-dsn.algolia.net" crossorigin="anonymous"><link rel="search" type="application/opensearchdescription+xml" title="Puppeteer" href="/opensearch.xml">
<script src="/fix-location.js"></script><link rel="stylesheet" href="/assets/css/styles.10908b84.css">
<script src="/assets/js/runtime~main.91c38e52.js" defer="defer"></script>
<script src="/assets/js/main.d27e11a0.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" alt="Puppeteer Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" alt="Puppeteer Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Puppeteer</b></a><a class="navbar__item navbar__link" href="/next/">Docs</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/next/api/puppeteer.puppeteernode">Puppeteer API</a><a class="navbar__item navbar__link" href="/next/browsers-api/">@puppeteer/browsers API</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/next/">Next</a><ul class="dropdown__menu"><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/next/api/puppeteer.httprequest">Next</a></li><li><a class="dropdown__link" href="/api/puppeteer.httprequest">22.1.0</a></li><li><hr class="dropdown-separator"></li><li class="dropdown-archived-versions"><b>Archived versions</b></li><li><a href="https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.0.0/docs/api/index.md" target="_blank" rel="noopener noreferrer" class="dropdown__link">22.0.0<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.11.0/docs/api/index.md" target="_blank" rel="noopener noreferrer" class="dropdown__link">21.11.0<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.10.0/docs/api/index.md" target="_blank" rel="noopener noreferrer" class="dropdown__link">21.10.0<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.9.0/docs/api/index.md" target="_blank" rel="noopener noreferrer" class="dropdown__link">21.9.0<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15
<p>Represents an HTTP request sent by a page.</p>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="signature">Signature:<a href="#signature" class="hash-link" aria-label="Direct link to Signature:" title="Direct link to Signature:"></a></h4>
<div class="language-typescript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-typescript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">declare</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">abstract</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">HTTPRequest</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="remarks">Remarks<a href="#remarks" class="hash-link" aria-label="Direct link to Remarks" title="Direct link to Remarks"></a></h2>
<p>Whenever the page sends a request, such as for a network resource, the following events are emitted by Puppeteer&#x27;s <code>page</code>:</p>
<ul>
<li><code>request</code>: emitted when the request is issued by the page. - <code>requestfinished</code> - emitted when the response body is downloaded and the request is complete.</li>
</ul>
<p>If request fails at some point, then instead of <code>requestfinished</code> event the <code>requestfailed</code> event is emitted.</p>
<p>All of these events provide an instance of <code>HTTPRequest</code> representing the request that occurred:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">page.on(&#x27;request&#x27;, request =&gt; ...)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will complete with <code>requestfinished</code> event.</p>
<p>If request gets a &#x27;redirect&#x27; response, the request is successfully finished with the <code>requestfinished</code> event, and a new request is issued to a redirected url.</p>
<p>The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the <code>HTTPRequest</code> class.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="properties">Properties<a href="#properties" class="hash-link" aria-label="Direct link to Properties" title="Direct link to Properties"></a></h2>
<table><thead><tr><th>Property</th><th>Modifiers</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>client</td><td><code>readonly</code></td><td><a href="/next/api/puppeteer.cdpsession">CDPSession</a></td><td>Warning! Using this client can break Puppeteer. Use with caution.</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="methods">Methods<a href="#methods" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods"></a></h2>
<table><thead><tr><th>Method</th><th>Modifiers</th><th>Description</th></tr></thead><tbody><tr><td><a href="/next/api/puppeteer.httprequest.abort">abort(errorCode, priority)</a></td><td></td><td>Aborts a request.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.aborterrorreason">abortErrorReason()</a></td><td></td><td>The most recent reason for aborting the request</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.continue">continue(overrides, priority)</a></td><td></td><td>Continues request with optional request overrides.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.continuerequestoverrides">continueRequestOverrides()</a></td><td></td><td>The <code>ContinueRequestOverrides</code> that will be used if the interception is allowed to continue (ie, <code>abort()</code> and <code>respond()</code> aren&#x27;t called).</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.enqueueinterceptaction">enqueueInterceptAction(pendingHandler)</a></td><td></td><td>Adds an async request handler to the processing queue. Deferred handlers are not guaranteed to execute in any particular order, but they are guaranteed to resolve before the request interception is finalized.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.failure">failure()</a></td><td></td><td>Access information about the request&#x27;s failure.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.fetchpostdata">fetchPostData()</a></td><td></td><td>Fetches the POST data for the request from the browser.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.finalizeinterceptions">finalizeInterceptions()</a></td><td></td><td>Awaits pending interception handlers and then decides how to fulfill the request interception.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.frame">frame()</a></td><td></td><td>The frame that initiated the request, or null if navigating to error pages.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.haspostdata">hasPostData()</a></td><td></td><td>True when the request has POST data. Note that <a href="/next/api/puppeteer.httprequest.postdata">HTTPRequest.postData()</a> might still be undefined when this flag is true when the data is too long or not readily available in the decoded form. In that case, use <a href="/next/api/puppeteer.httprequest.fetchpostdata">HTTPRequest.fetchPostData()</a>.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.headers">headers()</a></td><td></td><td>An object with HTTP headers associated with the request. All header names are lower-case.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.initiator">initiator()</a></td><td></td><td>The initiator of the request.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.interceptresolutionstate">interceptResolutionState()</a></td><td></td><td><p>An InterceptResolutionState object describing the current resolution action and priority.</p><p>InterceptResolutionState contains: action: InterceptResolutionAction priority?: number</p><p>InterceptResolutionAction is one of: <code>abort</code>, <code>respond</code>, <code>continue</code>, <code>disabled</code>, <code>none</code>, or <code>already-handled</code>.</p></td></tr><tr><td><a href="/next/api/puppeteer.httprequest.isinterceptresolutionhandled">isInterceptResolutionHandled()</a></td><td></td><td>Is <code>true</code> if the intercept resolution has already been handled, <code>false</code> otherwise.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.isnavigationrequest">isNavigationRequest()</a></td><td></td><td>True if the request is the driver of the current frame&#x27;s navigation.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.method">method()</a></td><td></td><td>The method used (<code>GET</code>, <code>POST</code>, etc.)</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.postdata">postData()</a></td><td></td><td>The request&#x27;s post body, if any.</td></tr><tr><td><a href="/next/api/puppeteer.httprequest.redirectchain">redirectChain()</a></td><td></td><td>A <code>redirectChain</code> is a chain of requests
</body>
</html>