2021-09-13 12:43:07 -07:00
# class: FetchRequest
2021-09-14 12:56:09 -07:00
* langs: js
2021-09-13 12:43:07 -07:00
This API is used for Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare
environment or the service to your e2e test. When used on [Page] or a [BrowserContext], this API will automatically use
the cookies from the corresponding [BrowserContext]. This means that if you log in using this API, your e2e test
will be logged in and vice versa.
2021-09-15 14:02:55 -07:00
## async method: FetchRequest.dispose
All responses received through [`method: FetchRequest.fetch` ], [`method: FetchRequest.get` ], [`method: FetchRequest.post` ]
and other methods are stored in the memory, so that you can later call [`method: FetchResponse.body` ]. This method
discards all stored responses, and makes [`method: FetchResponse.body` ] throw "Response disposed" error.
2021-09-13 12:43:07 -07:00
## async method: FetchRequest.fetch
- returns: < [FetchResponse]>
Sends HTTP(S) fetch and returns its response. The method will populate fetch cookies from the context and update
context cookies from the response. The method will automatically follow redirects.
### param: FetchRequest.fetch.urlOrRequest
- `urlOrRequest` < [string]|[Request]>
Target URL or Request to get all fetch parameters from.
2021-09-13 14:29:44 -07:00
### option: FetchRequest.fetch.params
- `params` < [Object]< [string], [string]>>
Query parameters to be send with the URL.
2021-09-13 12:43:07 -07:00
### option: FetchRequest.fetch.method
- `method` < [string]>
If set changes the fetch method (e.g. PUT or POST). If not specified, GET method is used.
### option: FetchRequest.fetch.headers
- `headers` < [Object]< [string], [string]>>
Allows to set HTTP headers.
### option: FetchRequest.fetch.data
2021-09-16 17:48:43 -07:00
- `data` < [string]|[Buffer]|[Serializable]>
2021-09-13 12:43:07 -07:00
2021-09-16 17:48:43 -07:00
Allows to set post data of the fetch. If the data parameter is an object, it will be serialized the following way:
* If `content-type` header is set to `application/x-www-form-urlencoded` the object will be serialized as html form using `application/x-www-form-urlencoded` encoding.
* If `content-type` header is set to `multipart/form-data` the object will be serialized as html form using `multipart/form-data` encoding.
* Otherwise the object will be serialized to json string and `content-type` header will be set to `application/json` .
2021-09-13 12:43:07 -07:00
### option: FetchRequest.fetch.timeout
- `timeout` < [float]>
Request timeout in milliseconds.
2021-09-13 15:38:27 -07:00
### option: FetchRequest.fetch.failOnStatusCode
- `failOnStatusCode` < [boolean]>
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned
for all status codes.
2021-09-13 12:43:07 -07:00
## async method: FetchRequest.get
- returns: < [FetchResponse]>
Sends HTTP(S) GET request and returns its response. The method will populate fetch cookies from the context and update
context cookies from the response. The method will automatically follow redirects.
### param: FetchRequest.get.urlOrRequest
- `urlOrRequest` < [string]|[Request]>
Target URL or Request to get all fetch parameters from.
2021-09-13 14:29:44 -07:00
### option: FetchRequest.get.params
- `params` < [Object]< [string], [string]>>
Query parameters to be send with the URL.
2021-09-13 12:43:07 -07:00
### option: FetchRequest.get.headers
- `headers` < [Object]< [string], [string]>>
Allows to set HTTP headers.
### option: FetchRequest.get.timeout
- `timeout` < [float]>
Request timeout in milliseconds.
2021-09-13 15:38:27 -07:00
### option: FetchRequest.get.failOnStatusCode
- `failOnStatusCode` < [boolean]>
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned
for all status codes.
2021-09-13 12:43:07 -07:00
## async method: FetchRequest.post
- returns: < [FetchResponse]>
Sends HTTP(S) fetch and returns its response. The method will populate fetch cookies from the context and update
context cookies from the response. The method will automatically follow redirects.
### param: FetchRequest.post.urlOrRequest
- `urlOrRequest` < [string]|[Request]>
Target URL or Request to get all fetch parameters from.
2021-09-13 14:29:44 -07:00
### option: FetchRequest.post.params
- `params` < [Object]< [string], [string]>>
Query parameters to be send with the URL.
2021-09-13 12:43:07 -07:00
### option: FetchRequest.post.headers
- `headers` < [Object]< [string], [string]>>
Allows to set HTTP headers.
### option: FetchRequest.post.data
2021-09-16 17:48:43 -07:00
- `data` < [string]|[Buffer]|[Serializable]>
2021-09-13 12:43:07 -07:00
2021-09-16 17:48:43 -07:00
Allows to set post data of the fetch. If the data parameter is an object, it will be serialized the following way:
* If `content-type` header is set to `application/x-www-form-urlencoded` the object will be serialized as html form using `application/x-www-form-urlencoded` encoding.
* If `content-type` header is set to `multipart/form-data` the object will be serialized as html form using `multipart/form-data` encoding.
* Otherwise the object will be serialized to json string and `content-type` header will be set to `application/json` .
2021-09-13 12:43:07 -07:00
### option: FetchRequest.post.timeout
- `timeout` < [float]>
Request timeout in milliseconds.
2021-09-13 15:38:27 -07:00
### option: FetchRequest.post.failOnStatusCode
- `failOnStatusCode` < [boolean]>
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned
for all status codes.