我正在使用 Flutter 為 Android 和 iOS 構建一個圖書應用程式。我正在使用 Google Books API 來檢索圖書資料,但我注意到一些我不理解的奇怪東西。如果我們查看 chrome 瀏覽器 ( 

我用來獲取 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;
uj5u.com熱心網友回復:
似乎https://www.googleapis.com/books/v1/volumes/b3GuDwAAQBAJ提供的資料與您通常的搜索查詢不同(例如https://www.googleapis.com/books/v1/volumes?q=isbn :9780143123231)。我不知道為什么。
uj5u.com熱心網友回復:
由于存在 unicode,您可以看到原始形式的 API 回應
來自瀏覽器的原始表單影像
但是當你得到 api 回應時,你可以決議成 json,通過決議 json 洗掉 unicodes 并且資料格式正確
如果您json Formatter在 chrome 中使用擴展程式,您可以看到 Json 形式的 chrome 中的資料和當您通過代碼點擊 api 時來自 api 的回應是相同的。
瀏覽器中 Json 表單中的資料
在應用程式代碼中,您設定 headers: {'content-type': 'application/json;這就是您收到 Json 資料代碼的原因。這不是問題,因為您將在您的應用程式中使用這些資料,
您可以在此處查看更多內容型別
塊參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/432087.html
上一篇:在httpPUT中顫振原始資料
