multipartEntityBuilder

multipartEntityBuilder

我有一个要上载的文件,所以我有一个标准的multipartentitybuilder,如下所示:

MultipartEntityBuilder multiPartEntity = MultipartEntityBuilder.create();
multiPartEntity.addBinaryBody("file", file);

我也有一些表单参数,我发送的邮件如下:
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("userId",userId));
postParameters.add(new BasicNameValuePair("taskId",taskId));
new UrlEncodedFormEntity(postParameters)

两个都是单独工作的,我的问题是如何在一个通话中同时完成这两个任务?我需要将一个折叠成另一个,这样我就可以在一个httppost()调用中进行此操作。

最佳答案

您似乎混淆了application/x-www-form-urlencodedmultipart/form-data内容类型。发送多部分请求时,您使用的是multipart/form-data,在这种情况下,您不需要对内容进行url编码。直接设置文本

MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
multipartEntityBuilder.addBinaryBody("file", file);
multipartEntityBuilder.addTextBody("userId", "someIdWith@url$encodable<>characters");

See the specification for more details.

10-04 17:02