【发布时间】:2018-10-18 02:49:00
【问题描述】:
这几天一直在尝试解决这个问题。该代码成功地为我提供了 JSON 数据,但缺少很多块,使我无法将其解析为对象。代码和输出如下。研究了很多,欢迎提出任何建议。
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);
});
});
}
}
一些输出:
“团队编号”:6 },
{
颤振:布鲁克曼和帕克维尔高中和数学中心,
科学和计算机科学”,
“昵称”:“Team007”,
"state_prov": "MD",
“团队编号”:7
},
{
Error:
Dart Error: Unhandled exception:
FormatException: Unterminated string (at line 42, character 155)
...y/US Army Aberdeen Test Center/Moffatt & Nichol/Baltimore Area Alliance/Mr.
^
#0 _ChunkedJsonParser.fail (dart:convert/runtime/libconvert_patch.dart:1358:5)
#1 _ChunkedJsonParser.close (dart:convert/runtime/libconvert_patch.dart:504:9)
#2 _parseJson (dart:convert/runtime/libconvert_patch.dart:30:10)
#3 JsonDecoder.convert (dart:convert/json.dart:540:36)
#4 JsonCodec.decode (dart:convert/json.dart:167:41)
#5 TBAState.getSWData
【问题讨论】:
-
如果你用postman之类的HTTP工具检查,你会得到同样的结果吗?
-
@JacobPhillips 我以前从未使用过 Postman,但我不是 API 的所有者,不确定这是否会有所作为。令人沮丧的问题,因为它会在随机位置截断部分。
-
@JacobPhillips 更新,使用 Postman 测试并返回正确的 JSON,因此使用 Dart 进行的某些事情,而不是 API 工作正常。还是卡住了。
-
日志输出经常被截断。而是调查调试器中的响应。
-
@GünterZöchbauer 对不起,我不明白。你能说得更具体点吗?
标签: json dart flutter httpresponse