sendRaw method
Future<WebDriverResponse>
sendRaw(
- WebDriverRequest request
)
Implementation
@override
Future<WebDriverResponse> sendRaw(WebDriverRequest request) async {
await _lock.acquire();
final requestUri = resolve(request.uri!);
final httpRequest = switch (request.method!) {
HttpMethod.httpGet => await client.getUrl(requestUri),
HttpMethod.httpPost => await client.postUrl(requestUri),
HttpMethod.httpDelete => await client.deleteUrl(requestUri)
};
httpRequest.followRedirects = true;
_headers.forEach(httpRequest.headers.add);
httpRequest.headers.add(HttpHeaders.acceptHeader, 'application/json');
httpRequest.headers.add(HttpHeaders.acceptCharsetHeader, utf8.name);
httpRequest.headers.add(HttpHeaders.cacheControlHeader, 'no-cache');
if (request.body != null && request.body!.isNotEmpty) {
httpRequest.headers.contentType =
ContentType('application', 'json', charset: 'utf-8');
final body = utf8.encode(request.body!);
httpRequest.contentLength = body.length;
httpRequest.add(body);
}
try {
final response = await httpRequest.close();
return WebDriverResponse(response.statusCode, response.reasonPhrase,
await utf8.decodeStream(response));
} finally {
_lock.release();
}
}