request method
Make request to the VK API
Implementation
Future<Json> request(
String method,
Map<String, dynamic> data,
) async {
var requests_params = defaultOptions;
requests_params.addAll(data);
if (requests_params['random_id'] == null) {
requests_params['random_id'] = Random().nextInt(4294967296);
}
for (var item in requests_params.entries) {
if (item.value is List) {
requests_params[item.key] = item.value.join(',');
} else {
requests_params[item.key] = item.value.toString();
}
}
var url = Uri.parse(_baseUrl + '/$method');
var response = await http.post(
url,
body: requests_params,
);
if (response.statusCode != 200) {
throw CoreException('Request is broken - ${response.statusCode}');
}
final decoded_response = json.decode(response.body);
if (decoded_response['error'] != null) {
Map error = decoded_response['error'];
throw VKException(error.cast<String, dynamic>());
}
return decoded_response;
}