Json Dart截断HttpClientResponse
几天来,我一直在努力解决这个问题。代码成功地为我提供了JSON数据,但缺少许多块,使我无法将其解析为对象。下面是代码和输出。我们已经做了很多研究,欢迎提出任何建议Json Dart截断HttpClientResponse,json,dart,flutter,httpresponse,Json,Dart,Flutter,Httpresponse,几天来,我一直在努力解决这个问题。代码成功地为我提供了JSON数据,但缺少许多块,使我无法将其解析为对象。下面是代码和输出。我们已经做了很多研究,欢迎提出任何建议 class TBAState extends State<TBAData>{ String url = "http://www.thebluealliance.com/api/v3/status"; HttpClient myhttp = new HttpClient(); List data; Lis
class TBAState extends State<TBAData>{
String url = "http://www.thebluealliance.com/api/v3/status";
HttpClient myhttp = new HttpClient();
List data;
List cellTitle;
Future getSWData() async {
myhttp.getUrl(Uri.parse(url)).then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXXX");
return request.close();
}).then((HttpClientResponse response) {
response.transform(utf8.decoder).listen((contents) {
// print(contents);
});
});
myhttp.get('www.thebluealliance.com', 80, '/api/v3/teams/0/simple')
.then((HttpClientRequest request){
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXX");
return request.close();
})
.then((HttpClientResponse response) {
response.transform(utf8.decoder).listen((content) {
//buffer.writeAll(content.toString());
print(content);
});
});
}
}
修正:问题出现在HttpClientResonse的转换中。正确代码:
class TBAState extends State<TBAData>{
HttpClient myhttp = new HttpClient();
List<dynamic> data;
List cellTitle;
List<Team> teamData;
Future getSWData() async {
myhttp.get('www.thebluealliance.com', 80, '/api/v3/status').then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXX");
return request.close();
}).then((HttpClientResponse response) {
response.transform(utf8.decoder).listen((contents) {
//print(contents);
});
});
myhttp.get('www.thebluealliance.com', 80, '/api/v3/teams/0/simple')
.then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXX");
return request.close();
})
.then((HttpClientResponse response) {
response.transform(utf8.decoder).transform(json.decoder).listen((data) {
print(data.toString());
setState(() {
TeamList myTeamsL = new TeamList.fromJson(data);
teamData = myTeamsL.teams;
});
});
});
}
}
类TBAState扩展状态{
HttpClient myhttp=新的HttpClient();
列出数据;
列表标题;
列出团队数据;
Future getSWData()异步{
myhttp.get('www.thebluealliance.com',80',/api/v3/status')。然后((HttpClientRequest){
set(“接受”、“应用程序/json”);
request.headers.set(“X-TBA-Auth-Key”、“XXXX”);
返回请求。close();
}).然后((HttpClientResponse响应){
response.transform(utf8.decoder).listen((内容){
//印刷(内容);
});
});
myhttp.get('www.thebluealliance.com',80',/api/v3/teams/0/simple'))
.然后((HttpClientRequest请求){
set(“接受”、“应用程序/json”);
request.headers.set(“X-TBA-Auth-Key”、“XXXX”);
返回请求。close();
})
.然后((HttpClientResponse响应){
transform(utf8.decoder).transform(json.decoder).listen((数据){
打印(data.toString());
设置状态(){
TeamlistMyTeamsl=新的TeamList.fromJson(数据);
teamData=myTeamsL.teams;
});
});
});
}
}
如果使用postman之类的HTTP工具进行检查,会得到相同的结果吗?@JacobPhillips我以前从未使用过postman,但我不是API的所有者,不确定这是否会产生影响。令人沮丧的问题,因为它会在随机位置截断一个节。@Jacob Phillips Update,使用Postman进行测试并返回正确的JSON,因此Dart中的某些东西而不是API工作正常。仍然卡住。日志输出经常被截断。而是调查调试器中的响应。@GünterZöchbauer抱歉,我不明白。你能说得更具体些吗?
class TBAState extends State<TBAData>{
HttpClient myhttp = new HttpClient();
List<dynamic> data;
List cellTitle;
List<Team> teamData;
Future getSWData() async {
myhttp.get('www.thebluealliance.com', 80, '/api/v3/status').then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXX");
return request.close();
}).then((HttpClientResponse response) {
response.transform(utf8.decoder).listen((contents) {
//print(contents);
});
});
myhttp.get('www.thebluealliance.com', 80, '/api/v3/teams/0/simple')
.then((HttpClientRequest request) {
request.headers.set("accept", "application/json");
request.headers.set("X-TBA-Auth-Key", "XXXX");
return request.close();
})
.then((HttpClientResponse response) {
response.transform(utf8.decoder).transform(json.decoder).listen((data) {
print(data.toString());
setState(() {
TeamList myTeamsL = new TeamList.fromJson(data);
teamData = myTeamsL.teams;
});
});
});
}
}