在Flutter中从Http.get获取空数据

时间:2019-10-13 09:44:23

标签: flutter

下面是代码。

Future<Article> _getArticle(int id) async{
   final storyUrl = "https://jsonplaceholder.typicode.com/photos";
   final storyRes = await http.get(storyUrl);
   if(storyRes.statusCode == 200){
      return parseArticle(storyRes.body);
   }else{
      throw Exception ("Failed to load photos");
   }
}

storyRes始终设置为NULL。我不知道为什么?

1 个答案:

答案 0 :(得分:0)

我试图从您的Json占位符创建一个Article类,它的工作就像一种魅力。

  Future<Article> _getArticle(int id) async {
    final storyUrl = "https://jsonplaceholder.typicode.com/photos";
    final storyRes = await http.get(storyUrl);

/** Created an Array from your json via using Article Class*/
final ArtArray = articleFromJson(storyRes.body);

    if (storyRes.statusCode == 200) {
      print(ArtArray[3999].title);
      return parseArticle(storyRes.body[id]);
    } else {
      throw Exception("Failed to load photos");
    }
  }

  Future<Article> parseArticle(String body) {

  }

我还没有实现parseArticle,只是为您的文章添加了一个类,并尝试打印结果并成功。 这是飞镖课

import 'dart:convert';

List<Article> articleFromJson(String str) => List<Article>.from(json.decode(str).map((x) => Article.fromJson(x)));

String articleToJson(List<Article> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class Article {
  int albumId;
  int id;
  String title;
  String url;
  String thumbnailUrl;

  Article({
    this.albumId,
    this.id,
    this.title,
    this.url,
    this.thumbnailUrl,
  });

  factory Article.fromJson(Map<String, dynamic> json) => Article(
    albumId: json["albumId"],
    id: json["id"],
    title: json["title"],
    url: json["url"],
    thumbnailUrl: json["thumbnailUrl"],
  );

  Map<String, dynamic> toJson() => {
    "albumId": albumId,
    "id": id,
    "title": title,
    "url": url,
    "thumbnailUrl": thumbnailUrl,
  };
}

我希望它对您有用。