Нужна помощь в устранении неполадок HTTP-запроса во Flutter с использованием метода PUT, при котором файл изображения тела отправляется на сервер NextCloud через API.
Как всегда, я протестировал отправку запроса через POSTMAN, чтобы увидеть, что происходит,Все работало нормально, выбрав «двоичный» на вкладке тела и выбрав файл изображения.
![Sending on postman](https://i.stack.imgur.com/t1Dbj.png)
Файл там, как и предполагалось:
![Nextcloud server](https://i.stack.imgur.com/bAf7W.png)
Перемещение для реализации этого в приложении Flutter Я использую следующий код:
_imageFile = Содержит изображение с камеры или галереи.
RaisedButton(
color: Colors.blueAccent,
child: Text('enviar'),
onPressed: () async {
String base64Image = base64Encode(_imageFile.readAsBytesSync());
print(base64Image);
var client = http.Client();
var request = http.Request(
'PUT', Uri.parse('https://host123.com.br/remote.php/dav/files/82427565709/TOOP.jpeg'));
request.headers.addAll(
{HttpHeaders.authorizationHeader: 'Basic ODI0Mjc1NjU3MDk6Y2xlYW5uZXQ=', 'Content-Type': 'image/jpeg'});
request.body = base64Image;
var streamedResponse = await client.send(request);
client.close();
print('ok!');
},
),
Результат на терминале:
I/flutter ( 8349): /9j/4AAQSkZJRgABAQEASABIAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjY
I/flutter ( 8349): ok
Результат на сервере Nextcloud, отправляемый через приложение:
![Nextcloud server 2](https://i.stack.imgur.com/lI0o1.png)
Похоже, что что-то не так с кодировкой или данными, которые отправляются в теле. Файл становится «поврежденным»
Это один и тот же файл в обоих тестах.
** ОБНОВЛЕНИЕ **
После изменения данных тела в байты, как это было предложенобез базового кодирования. (Изображение ниже)
![Just bytes](https://i.stack.imgur.com/IVfDk.png)
Попытка преобразования также с использованием метода .toString (), файл перешел на сервер, но остался таким же, как и раньше, выглядел поврежденным.