J'ai un contrôleur Java qui doit m'envoyer des données texte et des tableaux d'octets différents. Je suis donc en train de construire une requête multipart et de l'écrire en streaming à partir de HttpServletResponse.Réception d'une réponse multipart côté client (ClosableHttpResponse)
Maintenant, mon problème est comment analyser la réponse du côté client et extraire les multiples parties.
SERVEUR CODE SNIPPET: -
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// Prepare payload
builder.addBinaryBody("document1", file);
builder.addBinaryBody("document2", file2);
builder.addPart("stringData", new StringBody(jsonData, ContentType.TEXT_PLAIN));
// Set to request body
HttpEntity entity = builder.build();
postRequest.setEntity(entity);
CLIENT CODE SNIPPET: -
HttpPost httpPost = new HttpPost(finalUrl);
StringEntity entity = new StringEntity(json);
httpPost.setEntity(entity);
httpPost.setHeader("Content-type", APPLICATION_JSON_TYPE);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
CloseableHttpResponse response = httpClient.execute(httpPost);
InputStream in = new BufferedInputStream(response.getEntity().getContent());
J'ai vérifié CloseableHttpResponse et HttpEntity, mais aucun d'entre eux fournit la méthode pour analyser la demande multipart.
EDIT 1: Ceci est mon exemple de réponse que je reçois au flux côté client: -
--bvRi5oZum37DUldtLgQGSbc5RRVZxKpjZMO4SYDe
Content-Disposition: form-data; name="numeric"
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
01010110
--bvRi5oZum37DUldtLgQGSbc5RRVZxKpjZMO4SYDe
Content-Disposition: form-data; name="stringmessage"
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding:8bit
testmessage
--bvRi5oZum37DUldtLgQGSbc5RRVZxKpjZMO4SYDe
Content-Disposition: form-data; name="binarydata"; filename="file1"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
HI, THIS IS MY BINARY DATA
--bvRi5oZum37DUldtLgQGSbc5RRVZxKpjZMO4SYDe
Content-Disposition: form-data; name="ending"
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
ending
--bvRi5oZum37DUldtLgQGSbc5RRVZxKpjZMO4SYDe--
Je crois que cela peut vous aider: http://stackoverflow.com/questions/3337056/convenient-way-to-parse-incoming-multipart-form-data-parameters-in-a-servlet – Boschi
API @Boschi Fileupload Les méthodes acceptent HTTPServletRequest ce qui n'est pas possible dans mon cas car il s'agit d'une réponse du servlet. S'il vous plaît laissez-moi savoir si je manque un point ici. –
J'ai ajouté un exemple de réponse de message reçu au client .. –