gpt4 book ai didi

mysql - 在 flutter 上向我的本地主机发出 HTTP 请求不起作用

转载 作者:行者123 更新时间:2023-11-29 10:09:14 25 4
gpt4 key购买 nike

我正在尝试从通过使用express连接node.js上的mysql创建的api(以json格式)获取我的数据以显示在我的flutter应用程序上。

我在 android studio 控制台中运行此错误

[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type
'List<dynamic>'

API 目前看起来像这样

{
"error": false,
"data": [
{
"name": "conner",
"age": 24
},
{
"name": "andrew",
"age": 20
}
],
"message": "Todos list."
}

我正在使用本教程,只是将他的值“标题”替换为我的“名称”,https://www.youtube.com/watch?v=-PRrdG163to

这是我正在运行的代码

import 'dart:async';
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() {
runApp(new MaterialApp(
home: new HomePage(),
));
}

class HomePage extends StatefulWidget {
@override
HomePageState createState() => new HomePageState();
}
class HomePageState extends State<HomePage> {

Map<String,dynamic> data;

Future<String> getData() async {
var response = await http.get(
Uri.encodeFull("http://10.1.0.109:8080/names"),
headers: {
"Accept": "application/json"
}
);

this.setState(() {
data = JSON.decode(response.body);
});
print (data[1]["data"]);

return "Success!";
}

@override
void initState() {
super.initState();
this.getData();
}

@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Listviews"),
),
body: new ListView.builder(
itemCount: data == null ? 0 : data["data"].length,
itemBuilder: (BuildContext context, int index) {
return new Card(
child: new Text(data[index]["data"]),
);
},
),
);
}
}

最佳答案

问题出在您的 JSON 文件的结构中,它与教程中的不一样,所以请尝试这个

data["data"][1]["name"]

NOTE :

list 更改数据至varMap<String,dynamic>

Map<String,dynamic> data;

之后您需要获取列表长度,因此在 itemCount 中将其更改为

itemCount: data == null ? 0 : data["data"].length,

Full Example

enter image description here

关于mysql - 在 flutter 上向我的本地主机发出 HTTP 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51308725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com