401 несанкционированный ответ при отправке запроса на получение во флаттере с помощью пакетов Dio или http

Я сталкиваюсь с большой проблемой, когда делаю HTTP-запрос на сервер при использовании пакетов dio и http. Я отправляю токен в заголовке запроса, но всегда получаю неавторизованный ответ 401, несмотря на то, что этот запрос и токен работают нормально. в почтальоне, но когда я делаю запрос с помощью флаттера, всегда получает 401 несанкционированный, так что если кто-нибудь может мне помочь

Я попытался сделать запрос на получение, используя dio и http, но получил тот же ответ 401. Проверил токен в почтальоне, все работает нормально,
проверил http io во внешних пакетах, чтобы пакет не преобразовывал заголовок в маленький регистр.
Уверен, что серверная часть получает маленькие буквы в заголовках, но всегда получает одни и те же ошибки 401.

import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:http/http.dart' as http;
import 'package:graduation_project/core/localStorage/shared_preferences_storage.dart';
import '../../../core/constants/shared_pref_constants.dart';

class ItemsCartCall {
  static Future<List<dynamic>> getCartItems() async {
    final bearerToken =
        SharedPreferencesManager.getString(LocalStorageConstants.userToken);
    if (bearerToken == null || bearerToken.isEmpty) {
      throw Exception('Bearer token is missing or invalid');
    }
    final headers = {
      'Authorization': 'Bearer $bearerToken',
      'Accept': 'application/json',
    };

    final response = await http.get(
      Uri.parse('http://ikseer.onrender.com/orders/cart/'),
      headers: headers,
    );
    (response.body.toString());
    if (response.statusCode == 200) {
      final res = jsonDecode(response.body);

      await SharedPreferencesManager.storeStringVal(
          LocalStorageConstants.cartId, res['id']);

      return List<dynamic>.from(res['items']);
    } else if (response.statusCode == 401) {
      debugPrint(response.headers.toString());
      debugPrint(response.body.toString());

      throw Exception(response.body);
    } else {
      debugPrint(response.body.toString());
      throw Exception(
          'Server responded with status code: ${response.statusCode}');
    }
  }
}

Сделайте успешный запрос в Postman и проверьте заголовки. Убедитесь, что все заголовки, отправленные Postman, также отправляются вашим приложением Flutter.

Vinod Baste 29.06.2024 07:00

Я уже это сделал, все тот же ответ 401.

Muhammed Ashraf Al-Arabi 29.06.2024 07:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Убедитесь, что ваш запрос был отправлен по протоколу HTTPS.

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