Класс Requests устанавливает HttpClientRequest. Метод getTeamsJsonForRequest должен возвращать ответ JSON. Однако я полагаю, что переменная return не присваивается должным образом. Печать «CONTS» в ответе .then успешно печатает правильный ответ, но печать разделов «myres» говорит о том, что результат равен нулю. Не уверен, почему результат не назначается в разделе response.transform.
class Requests {
static Future getTeamsJsonForRequest(String reqPath) async{
var result;
HttpClient myhttp = new HttpClient();
String path = '/api/v3' + reqPath;
myhttp.get('www.thebluealliance.com', 80, path)
.then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXXX");
return request.close();
})
.then((HttpClientResponse response) {
response.transform(utf8.decoder).transform(json.decoder).listen((conts) {
print('CONTS: ' + conts.toString());
result = json.decode(conts).toString();
});
});
print('myres: ' + result.toString());
return result;
}
}

Краткий ответ: избегайте использования Future.then внутри метода async.
Ваш print запускается до получения ответа. https://www.dartlang.org/tutorials/language/futures#async-await
Без await любая работа, которая выполняется асинхронно, будет выполняться после, последующие операторы в этой функции выполняются.
Вот как бы я это написал:
Future<String> teamsJsonForRequest(String requestPath) async {
var client = new HttpClient();
var path = '/api/v3$requestPath';
var request = (await client.get('www.thebluealliance.com', 80, path))
..headers.set("accept", "application/json")
..headers.set("X-TBA-Auth-Key", "XXXXX");
var response = await request.close();
var result =
await response.transform(utf8.decoder).transform(json.decoder).single;
print('myres: $result');
return result;
}