Исключение ClientException (Размер содержимого превышает указанную длину содержимого. 10911 байт, записанных при ожидаемом 5965

#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:

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