如何从此链接“https://185.86.145.54/cameras/all”检索数据。我尝试从 API 获取数据,但在查看下图时出现问题。
类型 '_InternalLinkedHashMap' Flutter API 问题的子类型
谁能解释我如何从这个 API 中检索数据?
响应类:
import 'dart:convert';
CamerasStreams camerasStreamsFromJson(String str) =>
CamerasStreams.fromJson(json.decode(str));
String camerasStreamsToJson(CamerasStreams data) => json.encode(data.toJson());
class CamerasStreams {
CamerasStreams({
this.empty,
});
List<Empty> empty;
factory CamerasStreams.fromJson(Map<String, dynamic> json) => CamerasStreams(
empty: List<Empty>.from(json["Камеры"].map((x) => Empty.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"Камеры": List<dynamic>.from(empty.map((x) => x.toJson())),
};
}
class Empty {
Empty({
this.id,
this.info,
this.resComplex,
this.createDate,
this.link,
});
int id;
String info;
int resComplex;
DateTime createDate;
String link;
factory Empty.fromJson(Map<String, dynamic> json) => Empty(
id: json["id"],
info: json["info"],
resComplex: json["res_complex"],
createDate: DateTime.parse(json["create_date"]),
link: json["link"],
);
Map<String, dynamic> toJson() => {
"id": id,
"info": info,
"res_complex": resComplex,
"create_date": createDate.toIso8601String(),
"link": link,
};
}
获取函数:
import 'dart:convert';
import 'dart:io';
import 'package:http/io_client.dart';
import '../AllData.dart';
Future<List<CamerasStreams>> getApplicationsAPICall() async {
bool trustSelfSigned = true;
HttpClient httpClient = new HttpClient()
..badCertificateCallback =
((X509Certificate cert, String host, int port) => trustSelfSigned);
IOClient ioClient = new IOClient(httpClient);
String url = "https://185.86.145.54/cameras/all";
final response = await ioClient.get(
Uri.parse('$url'),
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
//HttpHeaders.authorizationHeader: '',
},
);
var jsonResponse = json.decode(response.body);
print(jsonResponse);
return jsonResponse;
// return jsonResponse.map((job) => CamerasStreams.fromJson(job)).toList();
}