flutter網路請求json
阿新 • • 發佈:2019-01-10
import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:flutter/material.dart';
//使用網路請求json class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { finalString url = "https://swapi.co/api/people"; List data; @override void initState() { super.initState(); this.getJsonData(); } Future<String> getJsonData() async{ var response = await http.get( //encode the url Uri.encodeFull(url), //only accept json response headers: {"Accept": "application/json"} ); print(response.body); setState(() { // ignore: deprecated_member_use var convertDataToJson = JSON.decode(response.body); data= convertDataToJson['results']; }); return "Success"; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Retrieve Json via Http get"), ), body: ListView.builder( itemCount: data == null? 0:data.length, itemBuilder: (BuildContext context,int index){ return Container( child: Center( child: Center( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: <Widget>[ Card( child: Container( child: Text(data[index]['name']), padding: EdgeInsets.all(20.0), ), ) ], ), ), ), ); }, ), ); } }