MultipartFormEntity – Contenu trop long

J’utilise Java avec HttpAsyncClient et j’essaie de faire une demande de publication sur un serveur en utilisant multipart / form. Il y a deux parameters: l’un est juste une chaîne, tandis que le second est un tableau fie / byte. Lorsque j’ai besoin d’exécuter des requêtes avec des tableaux d’octets de grande taille, j’obtiens l’exception suivante: org.apache.http.ContentTooLongException: la longueur du contenu est trop longue.

Est-il possible de surmonter ce problème? Comment pourrais-je faire une requête de grande taille avec multipart / form en utilisant Java et cette entité?

Voici une partie de mon code:

final HttpPost post = new HttpPost(uri); final HttpEntity entity = MultipartEntityBuilder.create() .addTextBody("name", fileName).addBinaryBody("file", rawContent, ContentType.APPLICATION_OCTET_STREAM, fileName) .build(); post.setEntity(entity); return client.execute(post, null); 

Où rawContent est juste un tableau d’octets.

Répondez à cette question ‘Y a-t-il un moyen de résoudre ce problème? ‘: vous pouvez essayer ce code dans votre classe’ MultipartFormEntity ‘

 @Override public InputStream getContent() throws IOException { if (this.contentLength < 0) { throw new ContentTooLongException("Content length is unknown"); } else if (this.contentLength > 25 * 1024) { throw new ContentTooLongException("Content length is too long: " + this.contentLength); } final ByteArrayOutputStream outstream = new ByteArrayOutputStream(); writeTo(outstream); outstream.flush(); return new ByteArrayInputStream(outstream.toByteArray()); } @Override public void writeTo(final OutputStream outstream) throws IOException { this.multipart.writeTo(outstream); } }