Рубрики

Указывайте тип параметров при объявлениях функций.

Список параметров функции определяет ее границу с внешним миром. Указывание типов параметров делает эту границу четко определенной. Обратите внимание, что, даже несмотря на то, что значения параметров по умолчанию выглядят как инициализаторы переменных, Dart не выводит тип необязательного параметра из его значения по умолчанию.

// Хороший код
void sayRepeatedly(String message, {int count = 2}) {
  for (var i = 0; i < count; i++) {
    print(message);
  }
}
// Не очень хороший код
void sayRepeatedly(message, {count = 2}) {  for (var i = 0; i < count; i++) {     
    print(message);   
  } 
}
   
Рубрики

Flutter http заголовки

Обычно я в проектах использую стандартную библиотеку http: ^0.12.2. Но недавно я столкнулся с ошибкой при отправке запроса, а точнее заголовка на сервер при использовании во Flutter http запросов.

Проблема заключается в том, что некоторые старые серверы чувствительны к регистру заголовка, например, им передаешь заголовок «Authorization», а пакет преобразует его в «authorization», что вызывает ошибку авторизации на сервере.

Так оказалось и в моем случае, при подключении к API Zadarma.com, их сервер оказался чувствительным в этом плане и ждет точное совпадение регистра.

Ответ сервера в этом случае отрицательный: {«status»:»Not authorized»}.

Для того, чтобы избежать подобной ошибки в заголовке, используйте стандартный класс HttpClient():

HttpClient httpClient = new HttpClient();

Рубрики

Flutter API. Часть 1

Регистрация на beget.ru собственного VPS сервера. За 11 рублей в сутки.

Создавая приложения на Flutter на языке Dart, вы рано или поздно захотите сделать свой небольшой сервер, для своих собственных запросов API. В чем плюсы: не надо пользоваться никакими там сторонними сервисами, всегда можете оперативно внести изменения, увеличить заказчику стоимость за созданный, готовый API (шутка, а может и нет).

Из минусов, пожалуй, только то, что потратите на обучение сутки (в принципе, если следовать инструкции, можно все развернуть за 2-3 часа времени)