Дротик усекает HttpClientResponse - PullRequest
       8

Дротик усекает HttpClientResponse

0 голосов
/ 18 октября 2018

Уже несколько дней пытаюсь решить эту проблему.Код успешно дает мне данные 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},

{<…> <- TRUNCATES </p> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

.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

1 Ответ

0 голосов
/ 21 октября 2018

Исправлено: проблема была в преобразовании 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;
                });

      });

    });
  }
}
...