Я пытаюсь вызвать rest API, который задокументирован так:
curl -X POST "https://url/api/v1/className/doSomething" -H "accept: application/json" -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
Вот мой код отправляет http пост. Он хорошо работает со всеми http API, которые я использовал раньше, но не для этого.
String result = "";
RequestProcess process = LogManager.getInstance().newProcess();
process.setProcessName(url);
process.setRequestContent(requestContent);
ObjectMapper mapper = new ObjectMapper().registerModule(new Jdk8Module()).registerModule(new JavaTimeModule());
String rawData = mapper.writeValueAsString(requestContent);
String charset = "UTF-8";
HttpURLConnection connection = (HttpURLConnection)new URL(url).openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/json;charset=" + charset);
connection.setRequestProperty("User-Agent", USER_AGENT);
connection.setRequestMethod("POST");
try (OutputStream output = connection.getOutputStream()) {
output.write(rawData.getBytes(charset));
}
InputStream inputStream = connection.getInputStream();
result = StreamUtil.toString(inputStream);
process.setResponseContent(result);
LogManager.getInstance().endProcess(process);
return result;
Я получаю сообщение об ошибке
java .io.IOException: сервер вернул код ответа HTTP: 400 для URL: url
Я пытался сделать то же самое с почтальоном, и это работает. Есть идеи?