Я пытаюсь отправить изображение из приложения флаттера (в эмуляторе android) на мою модель тензорного потока / flask api. При отправке изображения в формате base64 оно показывает, что запрос был запущен и принят API, но следующая ошибка возникает с кодом состояния 500:
binascii.Error: Invalid base64-encoded string: number of data characters (102985) cannot be 1 more than a multiple of 4
Проблема заключается в что полная строка в кодировке base64 не отправляется в API, потому что когда я смотрю на длину строки в кодировке base64 в приложении флаттера, я получаю число: 106688, которое делится на 4. Где происходит потеря данных родом из? Код, который я использовал для приложения Flutter, выглядит следующим образом:
var _image = File(imagePath);
List<int> imageBytes = _image.readAsBytesSync();
String base64Image = base64UrlEncode(imageBytes);
print(base64Image.length);
var uri = Uri.http("192.***.*.**:5000", "/model/predict/");
Map<String, String> data = {'b64': base64Image};
print(data['b64'].length);
http.Response response = await http.post(uri, body:data);
Заранее спасибо, обратите внимание, что изображение должно быть вставлено в API в формате base64 и что предварительная обработка выполняется в API.