我试图从JSON API中获取图像,我在开放数据JSON中做了两个链接,在此链接:http://www.json-generator.com/api/json/get/bOEcLwbyqa?indent=2
错误:另一个异常被抛出:HttpException:Connection closed while receiving data,uri =
对于“picturep”它工作(第一个屏幕截图),但对于“picture”它不工作(第二个屏幕截图),
我正在使用CicleAvatar与网络图像:
leading:CircleAvatar(
backgroundImage: NetworkImage(user.picturep),
),
字符串
班级:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class MyInherited extends StatefulWidget {
final Widget child;
MyInherited({this.child});
@override
MyInheritedState createState() => new MyInheritedState();
static MyInheritedState of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(_MyInherited) as _MyInherited).data;
}
}
class MyInheritedState extends State<MyInherited> {
String _myField;
List<String> names;
// only expose a getter to prevent bad usage
String get myField => _myField;
void onMyFieldChange(String newValue) {
setState(() {
_myField = newValue;
});
}
Future<UsersList> fetchUser() async {
final response = await http.get('http://www.json-generator.com/api/json/get/bOEcLwbyqa?indent=2');
if (response.statusCode == 200) {
// If the call to the server was successful, parse the JSON
return UsersList.fromJson(json.decode(response.body));
} else {
// If that call was not successful, throw an error.
throw Exception('Failed to load post');
}
}
@override
Widget build(BuildContext context) {
return new _MyInherited(
data: this,
child: widget.child,
);
}
}
/// Only has MyInheritedState as field.
class _MyInherited extends InheritedWidget {
final MyInheritedState data;
_MyInherited({Key key, this.data, Widget child}) : super(key: key, child: child);
@override
bool updateShouldNotify(_MyInherited old) {
return true;
}
}
class UsersList {
final List<User> users;
UsersList({ this.users, });
factory UsersList.fromJson(List<dynamic> parsedJson) {
List<User> photos = new List<User>();
photos = parsedJson.map((i) => User.fromJson(i)).toList();
return new UsersList(users: photos);
}
}
class User {
String sId;
String name;
String email;
String picture;
String picturep;
String address;
int age;
String gender;
User(
{this.sId,
this.name,
this.email,
this.picture,
this.picturep,
this.address,
this.age,
this.gender});
User.fromJson(Map<String, dynamic> json) {
sId = json['_id'];
name = json['name'];
email = json['email'];
picture = json['picture'];
picturep = json['picturep'];
address = json['address'];
age = json['age'];
gender = json['gender'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['_id'] = this.sId;
data['name'] = this.name;
data['email'] = this.email;
data['picture'] = this.picture;
data['picturep'] = this.picturep;
data['address'] = this.address;
data['age'] = this.age;
data['gender'] = this.gender;
return data;
}
}
型
我已经尽力了。
100d1x
的字符串
2条答案
按热度按时间jckbn6z71#
这是新的Android Studio更新中的一个新问题。默认情况下,Android Studio HTTP代理处于启用状态,如果代理认为连接不安全,这似乎会导致连接中断(特别是如果它是一个HTTP连接,而不是HTTPS连接).你有2个选项,连接使用HTTPS连接,并确保连接是绝对安全的,或者在你的android模拟器中禁用android studio代理配置。
备选案文2如下:
的数据
的
hjqgdpho2#
检查你的图片是否有一个有效的图片URL。