【发布时间】:2021-08-20 21:36:33
【问题描述】:
我在颤振中获取数据并创建了一个帮助类,如下所示
import 'dart:convert';
import 'package:http/http.dart' as http;
class HttpClient {
final Map<String, String> _headers = {};
void setHeader(String key, String value) {
if (!_headers.containsKey(key)) {
_headers[key] = value;
}
}
Future<http.Response> get(String url) async {
try {
var uri = Uri.parse(url);
var response = await http.get(uri, headers: _headers);
if (response.statusCode == 200) {
dynamic result = jsonDecode(response.body);
return result;
} else {
throw Error();
}
} on Exception catch (_) {
rethrow;
}
}
}
HttpClient appClient = HttpClient();
我从一个类中调用方法,如下所示
abstract class AbstractTodoService {
dynamic getTodos() {}
}
class HttpTodoService implements AbstractTodoService {
@override
Future<Response> getTodos() async {
try {
var todos =
await appClient.get('https://jsonplaceholder.typicode.com/todos');
print(todos);
return todos;
} on Exception catch (error) {
print(error);
rethrow;
}
}
}
但是,当我在等待调用 HttpClient 之后在 HttpTodoService 中打印 todos 或任何字符串时,我什么也看不到。但是,当我在 HttpClient 中打印 result 时,我看到了响应但没有返回。当我返回一个正常的字符串或映射时,一切正常,但是当我尝试使用 jsonDecoded 响应时,没有任何返回。
【问题讨论】: