Добавление заголовка авторизации в код флаттера возвращает ответ об ошибке, тогда как тот же запрос отлично работает в почтальоне.

У меня странная ошибка при флаттере, когда просто добавление заголовка авторизации позволяет мне получить ошибку.

Текущая проблема, с которой я столкнулся,

        postData(data, apiUrl) async {
    var fullUrl = _url + apiUrl;

    var at = await _accessToken;
    print('access token is $at');

    return await http.post(
      Uri.parse(fullUrl),
      body: jsonEncode(data),
      encoding: Encoding.getByName("utf-8"),
      headers: {
        'Authorization': 'Bearer $at',    <---------------- Adding this line of code prints an error in the console
        'Content-Type': 'application/json',
        'Accept': 'application/json'
      },
    );

В моем коде, если я добавлю Authorization заголовок, на который я указываю стрелкой в ​​приведенном выше коде, я получаю сообщение об ошибке на консоли, в котором говорится:

D / libc-netbsd (32217): [getaddrinfo]: mtk hostname = host_name_i_provided; servname = (ноль); cache_mode = (ноль), netid = 0; отметка = 0; app_uid = 10217; ai_addrlen = 0; ai_canonname = (ноль); ai_flags = 1024; ai_family=0 D / libc-netbsd(32217):getaddrinfo: host_name_i_provided получить результат от прокси >>E / flutter (32217): [ОШИБКА: flutter / lib / ui / ui_dart_state.cc (199)] Необработанное исключение: FormatException: Unexpected символ (в строке 3, символ 1) E / flutter (32217): E / flutter (32217): ^E / flutter (32217): E / flutter (32217): #0 _ChunkedJsonParser.fail (dart: convert-patch / convert_patch.dart:1404:5) E / flutter (32217): # 1
_ChunkedJsonParser.parseNumber (dart:convert-patch / convert_patch.dart: 1271: 9) E / flutter (32217): # 2
_ChunkedJsonParser.parse (dart:convert-patch / convert_patch.dart:936:22) E / flutter (32217): #3
_parseJson (dart:convert-patch / convert_patch.dart:40:10) E / flutter (32217): #4 JsonDecoder.convert (dart:convert / json.dart:506:36)E / flutter (32217): #5 JsonCodec.decode (dart: convert / json.dart:157:41) E / flutter (32217): #6
_RescueMeFormPageState.submitData (package: redcross / Pages / Disaster / rescue_me_form_page.dart:57: 21) E / flutter (32217 ): E / флаттер (32217):

Но если я удалю этот заголовок, я получу следующий действительный ответ:

I / flutter (32217): {статус: 400, данные: {code: TokenException, сообщение: токен авторизации не найден}}

Я не могу понять, почему я получаю эту ошибку.

Я хотел бы отметить еще несколько моментов: $atпеременная содержит правильный токен доступа. Я проверил это, добавив операторы печати. Итак, строка кода 'Authorization': 'Bearer $at', является действительным.

Также, если я сделаю тот же запрос от почтальона, я получу правильный ответ.

Может ли кто-нибудь помочь мне найти решение этой ошибки. Спасибо.....

1 ответ

Проблема не в токене, а в разборе JSON, проверьте код, в котором вы разбираете ответ.

Другие вопросы по тегам