Здравствуйте, уважаемые.
Подскажите, пожалуйста, как сделать нормальный multipart/form-data запрос ко ВКонтакте API?
Оговорюсь сразу, передавать нужно не файлы, а большие списки.
Пытался передавать обычный application/x-www-form-urlencoded - не воспринимает его.
Попытался так:
try {
URL url = new URL("https://api.vk.com/method/groups.getById");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.STRICT);
multipartEntity.addPart("", new StringBody("group_ids=1,2,3,4"));
// и так multipartEntity.addPart("group_ids", new StringBody("1,2,3,4"));
connection.setRequestProperty("Content-Type", multipartEntity.getContentType().getValue());
try (OutputStream out = connection.getOutputStream();
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is))) {
multipartEntity.writeTo(out);
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
}
return response.toString();
}
} catch (Exception e) {
log.error("", e);
}
Используется
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.2.4</version>
</dependency>
Не получается. Всегда ловлю ошибку 100:
{
"error":
{
"error_code":100,
"error_msg":"One of the parameters specified was missing or invalid: group_ids is undefined",
"request_params":
[
{
"key":"oauth",
"value":"1"
},
{
"key":"method",
"value":"groups.getById"
}
]
}
}
Подскажите, как правильно?