我有一个要上载的文件,所以我有一个标准的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-urlencoded
和multipart/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.