Всем привет. Пришло время сказать "А я говорил". Ну да ладно.
В чем суть. Рано или поздно вы сталкиваетесь с ситуацией, когда нужно передавать инфу в заголовке запроса, как минимум авторизация по токену передается в виде "Authorization": "bearer blablabla". Кстати а абсолютно случайно имя с большой буквы написал, но это прям оговорка по фрейду. Но пока что идем дальше. Я всегда думал, что бибилиотека http это базовая библиотека фреймворка для работы с http rest запросами.
Как же я ошибался...
На самом деле это обертка, такая же как и dio. И когда мне необходимо было запихнуть в хедеры локаль вида "Locale": "en". Я удивился, а почему не работает ? Наверно если я делал апи я бы сразу заметил, что хедеры прилетают с маленькой буквой, поменял бы на беке и вопрос был бы закрыт. Но апи не мое, а просить что то менять как то не удобно. И я начал копать и нашел это
То есть в библиотеке перед отправкой у каждого заголовка проставляется .toLowerCase(). Я не знаю зачем так и мне интересно зачем так, какой сакральный смысл в этой манипуляции.... В общем не долго думаю я перехожу на dio. На еще более хитрую библиотеку, которая по сути не библиотека а полноценный фреймворк по работе с запросами.
Окей. Перешел.
Но вот не задача.
Как говорится - списывай, но не слово в слово.
Спустя пару дней часов минут
Я нашел. Базовую библиотеку
HttpClient в пространстве самого dart. Самое забавное, что и там также сделано. Мы умнее всех - заголовки должны быть с маленькой буквой. Нет. Но после пары десятков иштысов* они добавили возможность добавлять заголовки в первостепенном виде.
Надо было свойство назвать blessAndPreserveHeaderCase. А то мало ли...
Окей всем спасибо. На самом то деле судя по охвату проблемы - проблемы то и нет. Так что скоро фреймворки будут решать за вас, как вам называть ваши классы и тд.
Сейчас библиотеки пишутся на каждый вообще чих. Разработчик не думает, как реализовать ту или иную задачу он сначала гуглит либу, а потом решает задачу в рамках этой либо. Это конечно удобно. Зачем писать код, если его уже кто то написал. Но вот не задача, пишет код такой же разработчик, как и ты может немного опытнее. Но чем больше опыта тем больше цена ошибки и эту цену придется платить не ему, а тебе.
* это типо кек Issue читается как иш ю и если ю перевести получается иш ты