我正在尝试通过我的 java 代码发送多部分表单数据帖子。有人可以告诉我如何在下面设置内容长度吗?当我们使用实现 ContentDescriptor 接口的 InputStreamBody 时,似乎涉及到标头。添加内容后,在 InputStreamBody 上执行 getContentLength 会给我-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();