Как вызвать API из флаттера - PullRequest
0 голосов
/ 20 марта 2020

Каждый раз, когда я вызываю конечную точку, я получаю сообщение об ошибке. Для этого примера представлены значения Stati c, но в дальнейшем они будут заменены реальными значениями. Цель состоит в том, чтобы получить значения из базы данных через API. Значения, порядок и записи были проверены на наличие орфографических ошибок. Любое понимание будет оценено.

class Search {
  final int id;
  final String location;
  final int employer;
  final String service;
  final int position;
  final String userId;

  Search({this.id, this.location, this.employer, this.service, this.position, this.userId});

  factory Search.fromJson(Map<String, dynamic> json) {
    return Search(
      id: json['id'],
      employer: json['employer'],
      location: json['location'],
      service: json['service'],
      position: json['position'],
    );
  }
  Map<String, String> headers = {
    'content-type': 'application/json',
    'accept': 'application/json',
    'authorization': 'ztNMKpkGM4USORPl45HGEl8EMyh1'
 };
  Map toMap() {
    var map = new Map<String, dynamic>();
    map["employer"] = employer;
    map["location"] = location;
    map["service"] = service;
    map["postion"] = position;

    return map;
  }
}

Future<Search> createSearch(
  int employer, String location, String service, int position) async {
  final http.Response response = await http.post(
      'http://m-waks/employer/asefsdgcsjdsxxx/search-employees/',
      headers: {
        HttpHeaders.authorizationHeader: 'ztNMKpkGM4USORPl45HGEl8EMyh1','Content-Type': 'application/json',
        'Accept': 'application/json'
      },
      body: jsonEncode(<String, dynamic>{
        'employer': employer,
        'location': location,
        'service': service,
        'position': position
      }));

  if (response.statusCode < 200 || response.statusCode > 400 || json == null) {
    throw new Exception("Error while fetching data");
  } else {
    return Search.fromJson(json.decode(response.body)['results']);
  }
}

выполнение для этого вызова

onPressed: () async {
            setState(() {
              _search = createSearch(3,"All Areas","Beautician",0);
            });
}

Сообщение об ошибке здесь:

[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (16592): <html>
E/flutter (16592): ^
E/flutter (16592): 
E/flutter (16592): #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1394:5)
E/flutter (16592): #1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1261:9)
E/flutter (16592): #2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:926:22)
E/flutter (16592): #3      _parseJson (dart:convert-patch/convert_patch.dart:31:10)
E/flutter (16592): #4      JsonDecoder.convert (dart:convert/json.dart:495:36)
E/flutter (16592): #5      JsonCodec.decode (dart:convert/json.dart:153:41)
E/flutter (16592): #6      createSearch (package:m_waks/pages/home_page.dart:68:33)
E/flutter (16592): <asynchronous suspension>
E/flutter (16592): #7      _HomePageState._buildList.<anonymous closure>.<anonymous closure> (package:m_waks/pages/home_page.dart:608:25)
E/flutter (16592): #8      State.setState (package:flutter/src/widgets/framework.dart:1148:30)
E/flutter (16592): #9      _HomePageState._buildList.<anonymous closure> (package:m_waks/pages/home_page.dart:607:13)
E/flutter (16592): #10     _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
E/flutter (16592): #11     _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:789:36)
E/flutter (16592): #12     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (16592): #13     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486:11)
E/flutter (16592): #14     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:264:5)
E/flutter (16592): #15     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:236:7)
E/flutter (16592): #16     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter (16592): #17     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20)
E/flutter (16592): #18     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (16592): #19     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (16592): #20     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (16592): #21     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (16592): #22     _rootRunUnary (dart:async/zone.dart:1138:13)
E/flutter (16592): #23     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter (16592): #24     _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
E/flutter (16592): #25     _invoke1 (dart:ui/hooks.dart:273:10)
E/flutter (16592): #26     _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...