pub struct Request { /* private fields */ }
Expand description
Whenever the page sends a request for a network resource the following sequence of events are emitted by Page
:
- [
event: Page.request
] emitted when the request is issued by the page. - [
event: Page.response
] emitted when/if the response status and headers are received for the request. - [
event: Page.requestFinished
] emitted when the response body is downloaded and the request is complete.
If request fails at some point, then instead of 'requestfinished'
event (and possibly instead of ‘response’ event),
the [event: Page.requestFailed
] event is emitted.
NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will complete with
'requestfinished'
event.
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.
Implementations§
Source§impl Request
impl Request
Sourcepub fn resource_type(&self) -> Result<String, Error>
pub fn resource_type(&self) -> Result<String, Error>
Contains the request’s resource type as it was perceived by the rendering engine. ResourceType will be one of the
following: document
, stylesheet
, image
, media
, font
, script
, texttrack
, xhr
, fetch
, eventsource
,
websocket
, manifest
, other
.
pub fn url(&self) -> Result<String, Error>
Whether this request is driving frame’s navigation.
pub fn post_data(&self) -> Result<Option<Vec<u8>>, Error>
pub fn post_post_as_string(&self) -> Result<Option<String>, Error>
Sourcepub fn headers(&self) -> Result<HashMap<String, String>, Error>
pub fn headers(&self) -> Result<HashMap<String, String>, Error>
An object with HTTP headers associated with the request. All header names are lower-case.
Sourcepub fn redirected_from(&self) -> Result<Option<Request>, Error>
pub fn redirected_from(&self) -> Result<Option<Request>, Error>
Request that was redirected by the server to this one, if any.
When the server responds with a redirect, Playwright creates a new Request
object. The two requests are connected by
redirectedFrom()
and redirectedTo()
methods. When multiple server redirects has happened, it is possible to
construct the whole redirect chain by repeatedly calling redirectedFrom()
.
For example, if the website http://example.com
redirects to https://example.com
:
const response = await page.goto('http://example.com');
console.log(response.request().redirectedFrom().url()); // 'http://example.com'
If the website https://google.com
has no redirects:
const response = await page.goto('https://google.com');
console.log(response.request().redirectedFrom()); // null
pub async fn redirected_to(&self) -> Result<Option<Request>, Error>
Sourcepub async fn response(&self) -> Result<Option<Response>, Arc<Error>>
pub async fn response(&self) -> Result<Option<Response>, Arc<Error>>
Returns the matching Response
object, or null
if the response was not received due to error.
Sourcepub fn failure(&self) -> Result<Option<String>, Error>
pub fn failure(&self) -> Result<Option<String>, Error>
The method returns null
unless this request has failed, as reported by requestfailed
event.
Example of logging of all the failed requests:
page.on('requestfailed', request => {
console.log(request.url() + ' ' + request.failure().errorText);
});
Sourcepub fn timing(&self) -> Result<Option<ResponseTiming>, Error>
pub fn timing(&self) -> Result<Option<ResponseTiming>, Error>
Returns resource timing information for given request. Most of the timing values become available upon the response,
responseEnd
becomes available when request finishes. Find more information at
Resource Timing API.
const [request] = await Promise.all([
page.waitForEvent('requestfinished'),
page.goto('http://example.com')
]);
console.log(request.timing());