【发布时间】:2020-07-04 07:39:16
【问题描述】:
我昨天从颤振开始,今天我遇到了 GET 请求的问题。
我似乎无法从我的 URL 获取数据,我不知道为什么当我将其粘贴到浏览器中时一切正常
我试图获得一个 User 对象,但对我没有任何作用:(
我的代码,
用户.dart
class User{
int id;
String firstName;
String lastName;
String email;
User(this.id, this.firstName, this.lastName, this.email);
User.fromJson(Map<String,dynamic> json){
id = json['id'];
firstName = json['firstName'];
lastName = json['lastName'];
email = json['email'];
}
}
我的 GET 函数:
Future<User> getCurrentUser() async {
String url = 'http://10.0.2.2:80/user/current';
final response =
await http.get(url, headers: {"Accept": "application/json"});
if (response.statusCode == 200) {
return User.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to load post');
}
}
我的小部件:
class UserPageState extends State<UserPage>{
Future<List<dynamic>> _user;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Builder(
builder: (context) => Container(
child: FutureBuilder(
future: getCurrentUser(),
builder: (BuildContext context, AsyncSnapshot snapshot){
if(snapshot.hasData ){
return Container(
child: Center(child: Text(snapshot.data['firstName']),),
);
}else {
return Text('NOT LOAD');
}
},
),
),
),
);
}
}
当我将url 粘贴到浏览器中时,它会显示:
{
createdAt: 1584905291338,
updatedAt: 1584905291338,
id: 3,
firstName: "name",
lastName: "surname",
email: "surname@name.com",
admin: false
}
我不知道我能做什么, 请帮助我:(
【问题讨论】:
-
可能你需要向服务器传递一些东西来获取数据? (标头中的令牌或ID或类似内容)
-
@MidhunMP 但是当我在浏览器中运行时,此链接一切正常并正确返回数据
-
需要某种方法来确定哪些用户详细信息需要返回对吗?您必须向服务器传递某种参数来识别您需要获取哪些用户数据,对吗?尝试从代码中删除这些标头字段并检查
-
我删除并且没有更改,当我运行这个 url 时我不需要向服务器提供任何参数
-
这可能是您的服务器不喜欢 dart 将在标题中接受的工作小写。顺便说一句,您如何在浏览器中设置该标题?您是否尝试过 Postman 的请求?
标签: json rest api flutter request