I'm using apache HttpClient
to post several files to server. Here's the code:
public static HttpResponse stringResponsePost(String urlString, String content, byte[] image,
HttpContext localContext, HttpClient httpclient) throws Exception {
URL url = new URL(URLDecoder.decode(urlString, "utf-8"));
URI u = url.toURI();
HttpPost post = new HttpPost();
post.setURI(u);
MultipartEntity reqEntity = new MultipartEntity();
StringBody sb = new StringBody(content, HTTP_CONTENT_TYPE_JSON, Charset.forName("UTF-8"));
ByteArrayBody ib = new ByteArrayBody(image, HTTP_CONTENT_TYPE_JPEG, "image");
reqEntity.addPart("interview_data", sb);
reqEntity.addPart("interview_image", ib);
post.setEntity(reqEntity);
HttpResponse response = null;
response = httpclient.execute(post, localContext);
return response;
}
The problem is, MultipartEntity
class only has isChunked()
method (which always returns false), there is no "setChunked(boolean)" option if I wish to enable chucked encoding for my multipart entity.
My question is:
Can HTTP multipart and chunking coexist according to protocol specification? If not, why other entities like
InputStreamEntity
class havesetChunked(boolean)
whereMultipartEntity
doesn't?Is there any way to post multiple files "at once" with chunking enabled, more preferably with apache libraries?