#flutter #http #dart
#flutter #http #dart
Вопрос:
я получаю исключение ClientException (размер содержимого превышает указанную длину содержимого. 10911 байт, записанных при ожидаемом 5965.ошибка при попытке загрузить файл m4a на мой сервер. я попытался отправить точно такой же запрос от postman, и он работает просто отлично. я также смог отправлять изображения и видео, используя точно такой же запрос в flutter. я отследил метод отправки, и он выдает ошибку в методе «отправить» в классе Client в фреймворке это мой код запроса:
static Future<String> uploadFile(
{Attachment attachment,
List<Attachment> attachments,
String toUserIdForMessage}) async {
Uri _uri = Uri.parse(globalUrl file 'Uploads');
http.MultipartRequest _reqss = http.MultipartRequest(
'POST',
_uri,
);
Attachment _attForHeaders = attachment ?? attachments[0];
_reqss.headers.addAll(await headersWToken);
_reqss.fields['ownerType'] =
_attForHeaders.attachmentOwner.index.toString();
_reqss.fields['ownerId'] = _attForHeaders.ownerId.toString();
_reqss.fields['toUserIdForMessage'] = toUserIdForMessage;
if (attachment != null amp;amp; attachment.path != null)
_reqss.files.add(
await http.MultipartFile.fromPath(
attachment.path,
attachment.path,
),
);
if (attachments != null amp;amp; attachments.length != 0) {
for (Attachment att in attachments) {
_reqss.files.add(
await http.MultipartFile.fromPath(
att.path,
att.path,
),
);
}
}
var _response = await (_reqss.send());
var _re = _response.stream.bytesToString();
return _re;
}
Ответ №1:
эта ошибка возникла, когда я пытался записать голосовое сообщение и загрузить его. проблема заключалась в том, что регистратор не закрывался. поэтому, когда запрос готовится, устройство записи продолжало запись, и, таким образом, возникла проблема с разницей в размерах.