Я пытаюсь отправить сообщение из нескольких частей через мои java-коды. Может кто-нибудь сказать мне, как установить длину контента в следующем ?? Кажется, что при использовании InputStreamBody, который реализует интерфейс ContentDescriptor, возникают заголовки. Выполнение getContentLength для InputStreamBody дает мне -1 после добавления содержимого. Я разделил его на подклассы, чтобы дать contentLength длину моего байтового массива, но не уверен, будут ли другие заголовки, требуемые ContentDescriptor, установлены для правильного POST.
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(myURL);
ContentBody cb = new InputStreamBody(new ByteArrayInputStream(bytearray), myMimeType, filename);
//ContentBody cb = new ByteArrayBody(bytearray, myMimeType, filename);
MultipartEntity mpentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
mpentity.addPart("key", new StringBody("SOME_KEY"));
mpentity.addPart("output", new StringBody("SOME_NAME"));
mpentity.addPart("content", cb);
httpPost.setEntity(mpentity);
HttpResponse response = httpclient.execute(httpPost);
HttpEntity resEntity = response.getEntity();