class Playwright::Request

Whenever the page sends a request for a network resource the following sequence of events are emitted by `Page`:

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.

Public Instance Methods

failure() click to toggle source

The method returns `null` unless this request has failed, as reported by `requestfailed` event.

Example of logging of all the failed requests:

“`py page.on(“requestfailed”, lambda request: print(request.url + “ ” + request.failure)) “`

# File lib/playwright_api/request.rb, line 24
def failure
  wrap_impl(@impl.failure)
end
frame() click to toggle source

Returns the `Frame` that initiated this request.

# File lib/playwright_api/request.rb, line 29
def frame
  wrap_impl(@impl.frame)
end
headers() click to toggle source

An object with HTTP headers associated with the request. All header names are lower-case.

# File lib/playwright_api/request.rb, line 34
def headers
  wrap_impl(@impl.headers)
end
method() click to toggle source

Request's method (GET, POST, etc.)

# File lib/playwright_api/request.rb, line 44
def method
  wrap_impl(@impl.method)
end
navigation_request?() click to toggle source

Whether this request is driving frame's navigation.

off(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/request.rb, line 145
def off(event, callback)
  event_emitter_proxy.off(event, callback)
end
on(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/request.rb, line 139
def on(event, callback)
  event_emitter_proxy.on(event, callback)
end
once(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/request.rb, line 133
def once(event, callback)
  event_emitter_proxy.once(event, callback)
end
post_data() click to toggle source

Request's post body, if any.

# File lib/playwright_api/request.rb, line 49
def post_data
  wrap_impl(@impl.post_data)
end
post_data_buffer() click to toggle source

Request's post body in a binary form, if any.

# File lib/playwright_api/request.rb, line 54
def post_data_buffer
  wrap_impl(@impl.post_data_buffer)
end
post_data_json() click to toggle source

Returns parsed request's body for `form-urlencoded` and JSON as a fallback if any.

When the response is `application/x-www-form-urlencoded` then a key/value object of the values will be returned. Otherwise it will be parsed as JSON.

# File lib/playwright_api/request.rb, line 62
def post_data_json
  wrap_impl(@impl.post_data_json)
end
redirected_from() click to toggle source

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 `example.com` redirects to `example.com`:

“`python sync response = page.goto(“example.com”) print(response.request.redirected_from.url) # “example.com” “`

If the website `google.com` has no redirects:

“`python sync response = page.goto(“google.com”) print(response.request.redirected_from) # None “`

# File lib/playwright_api/request.rb, line 85
def redirected_from
  wrap_impl(@impl.redirected_from)
end
redirected_to() click to toggle source

New request issued by the browser if the server responded with redirect.

This method is the opposite of [`method: Request.redirectedFrom`]:

“`py assert request.redirected_from.redirected_to == request “`

# File lib/playwright_api/request.rb, line 96
def redirected_to
  wrap_impl(@impl.redirected_to)
end
resource_type() click to toggle source

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`.

# File lib/playwright_api/request.rb, line 103
def resource_type
  wrap_impl(@impl.resource_type)
end
response() click to toggle source

Returns the matching `Response` object, or `null` if the response was not received due to error.

# File lib/playwright_api/request.rb, line 108
def response
  wrap_impl(@impl.response)
end
timing() click to toggle source

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](developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming).

“`python sync with page.expect_event(“requestfinished”) as request_info:

page.goto("http://example.com")

request = request_info.value print(request.timing) “`

# File lib/playwright_api/request.rb, line 122
def timing
  wrap_impl(@impl.timing)
end
url() click to toggle source

URL of the request.

# File lib/playwright_api/request.rb, line 127
def url
  wrap_impl(@impl.url)
end

Private Instance Methods

event_emitter_proxy() click to toggle source
# File lib/playwright_api/request.rb, line 149
        def event_emitter_proxy
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
end