Interface Request
-
public interface RequestWhenever the page sends a request for a network resource the following sequence of events are emitted byPage:-
Page.onRequest()emitted when the request is issued by the page. -
Page.onResponse()emitted when/if the response status and headers are received for the request. -
Page.onRequestFinished()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), thePage.onRequestFailed()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
requestfinishedevent, and a new request is issued to a redirected url. -
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Map<String,String>allHeaders()An object with all the request HTTP headers associated with this request.Stringfailure()The method returnsnullunless this request has failed, as reported byrequestfailedevent.Frameframe()Returns theFramethat initiated this request.Map<String,String>headers()An object with the request HTTP headers.List<HttpHeader>headersArray()An array with all the request HTTP headers associated with this request.StringheaderValue(String name)Returns the value of the header matching the name.booleanisNavigationRequest()Whether this request is driving frame's navigation.Stringmethod()Request's method (GET, POST, etc.)StringpostData()Request's post body, if any.byte[]postDataBuffer()Request's post body in a binary form, if any.RequestredirectedFrom()Request that was redirected by the server to this one, if any.RequestredirectedTo()New request issued by the browser if the server responded with redirect.StringresourceType()Contains the request's resource type as it was perceived by the rendering engine.Responseresponse()Returns the matchingResponseobject, ornullif the response was not received due to error.Sizessizes()Returns resource size information for given request.Timingtiming()Returns resource timing information for given request.Stringurl()URL of the request.
-
-
-
Method Detail
-
allHeaders
Map<String,String> allHeaders()
An object with all the request HTTP headers associated with this request. The header names are lower-cased.- Since:
- v1.15
-
failure
String failure()
The method returnsnullunless this request has failed, as reported byrequestfailedevent.Usage
Example of logging of all the failed requests:
page.onRequestFailed(request -> { System.out.println(request.url() + " " + request.failure()); });- Since:
- v1.8
-
frame
Frame frame()
Returns theFramethat initiated this request.Usage
String frameUrl = request.frame().url();Details
Note that in some cases the frame is not available, and this method will throw.
- When request originates in the Service Worker. You can use
request.serviceWorker()to check that. - When navigation request is issued before the corresponding frame is created. You can use
Request.isNavigationRequest()to check that.
Here is an example that handles all the cases:
- Since:
- v1.8
- When request originates in the Service Worker. You can use
-
headers
Map<String,String> headers()
An object with the request HTTP headers. The header names are lower-cased. Note that this method does not return security-related headers, including cookie-related ones. You can useRequest.allHeaders()for complete list of headers that includecookieinformation.- Since:
- v1.8
-
headersArray
List<HttpHeader> headersArray()
An array with all the request HTTP headers associated with this request. UnlikeRequest.allHeaders(), header names are NOT lower-cased. Headers with multiple entries, such asSet-Cookie, appear in the array multiple times.- Since:
- v1.15
-
headerValue
String headerValue(String name)
Returns the value of the header matching the name. The name is case insensitive.- Parameters:
name- Name of the header.- Since:
- v1.15
-
isNavigationRequest
boolean isNavigationRequest()
Whether this request is driving frame's navigation.Some navigation requests are issued before the corresponding frame is created, and therefore do not have
Request.frame()available.- Since:
- v1.8
-
method
String method()
Request's method (GET, POST, etc.)- Since:
- v1.8
-
postData
String postData()
Request's post body, if any.- Since:
- v1.8
-
postDataBuffer
byte[] postDataBuffer()
Request's post body in a binary form, if any.- Since:
- v1.8
-
redirectedFrom
Request redirectedFrom()
Request that was redirected by the server to this one, if any.When the server responds with a redirect, Playwright creates a new
Requestobject. The two requests are connected byredirectedFrom()andredirectedTo()methods. When multiple server redirects has happened, it is possible to construct the whole redirect chain by repeatedly callingredirectedFrom().Usage
For example, if the website
http://example.comredirects tohttps://example.com:Response response = page.navigate("http://example.com"); System.out.println(response.request().redirectedFrom().url()); // "http://example.com"If the website
https://google.comhas no redirects:Response response = page.navigate("https://google.com"); System.out.println(response.request().redirectedFrom()); // null- Since:
- v1.8
-
redirectedTo
Request redirectedTo()
New request issued by the browser if the server responded with redirect.Usage
This method is the opposite of
Request.redirectedFrom():System.out.println(request.redirectedFrom().redirectedTo() == request); // true- Since:
- v1.8
-
resourceType
String resourceType()
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.- Since:
- v1.8
-
response
Response response()
Returns the matchingResponseobject, ornullif the response was not received due to error.- Since:
- v1.8
-
sizes
Sizes sizes()
Returns resource size information for given request.- Since:
- v1.15
-
timing
Timing timing()
Returns resource timing information for given request. Most of the timing values become available upon the response,responseEndbecomes available when request finishes. Find more information at Resource Timing API.Usage
page.onRequestFinished(request -> { Timing timing = request.timing(); System.out.println(timing.responseEnd - timing.startTime); }); page.navigate("http://example.com");- Since:
- v1.8
-
url
String url()
URL of the request.- Since:
- v1.8
-
-