Флаттер: пост-запрос Base64 не получает всю строку base64 - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь отправить изображение из приложения флаттера (в эмуляторе 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...