我正在使用 Flutter 为 Android 和 iOS 构建一个图书应用程序。我正在使用 Google Books API 来检索图书数据,但我注意到一些我不理解的奇怪东西。如果我们查看 chrome 浏览器 ( https://www.googleapis.com/books/v1/volumes/b3GuDwAAQBAJ ) 中显示的图书数据,我们可以看到内容(例如字段类别)与我得到的不同调用http响应并打印出它的正文。除此之外,似乎还没有发送unicode 字符(例如来自description )。
我用来获取 API 数据的代码如下所示:
Response result = await http.get(Uri.parse(url), headers: {'content-type': 'application/json; charset=utf-8'});
if (result.statusCode == 200) {
final jsonResponse = jsonDecode(utf8.decode(result.bodyBytes));
if (jsonResponse["totalItems"] == 0) {
return List.empty();
}
//this prints out the content in above image
print(result.body.toString());
final booksMap = jsonResponse['items'];
List<dynamic> books = booksMap.map((i) => Book.fromJson(i)).toList();
return books;