Мне нужно создать и отправить HttpPost, содержащий данные формы, которые должны выглядеть следующим образом:
Как это должно выглядеть
Я использую Apache httpmimeи httpclient (версия 4.5.10):
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.10</version>
</dependency>
Это мой код:
...
ContentType contentType = ContentType.create("multipart/form-data");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
HttpEntity entity = builder.addTextBody("Name 123", "Value 123").setContentType(contentType).build();
httppost.setEntity(entity);
HttpClient myClient = HttpClientBuilder.create().disableRedirectHandling().build();
response = myClient.execute(httppost, context);
...
Код работает (исключение не возникает), но сообщение выглядит так в whireshark: Как это выглядит в настоящее время
Как вы можете видеть, есть только блок данных, но нет "инкапсулированных составных частей" - частей. Веб-приложение, которое получает пост-данные, нуждается в данных в «формате», показанном на первом скриншоте. -> Что мне нужно сделать для достижения этой цели?
Я также попробовал другой подход, но он не решил мою проблему (без «инкапсулированной составной части» - части):
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("Name 123", "Value 123"));
httppost.setEntity(new UrlEncodedFormEntity(params));
HttpClient myClient = HttpClientBuilder.create().disableRedirectHandling().build();
response = myClient.execute(httppost, context);
Любая помощь высоко ценится!