request method
Implementation
Future<Map<String, Object?>> request(
String method, [
Map<String, Object?> params = const {},
]) async {
final bytes = utf8.encode(
jsonEncode({
'protocol': devSessionProtocolVersion,
'method': method,
'params': params,
}),
);
if (bytes.length > _maxBytes) {
throw const DevSessionException(
'Development payload exceeds the size limit.',
);
}
final request = await _http.postUrl(Uri.parse('http://127.0.0.1:$_port/'));
request.headers.set(HttpHeaders.authorizationHeader, 'Bearer $_token');
request.headers.contentType = ContentType.json;
request.contentLength = bytes.length;
request.add(bytes);
final response = await request.close().timeout(const Duration(seconds: 46));
final data = jsonDecode(await _readBounded(response)) as Map;
if (response.statusCode != HttpStatus.ok || data['result'] is! Map) {
throw DevSessionException(
data['error']?.toString() ?? 'Development session unavailable.',
);
}
return (data['result'] as Map).cast<String, Object?>();
}