Ошибка 406 при попытке запустить SQL-запрос с Java
Привет всем, кто впервые публикует сообщения, поэтому я уверен, что пропущу некоторые стандарты стека.
В любом случае я получаю сообщение об ошибке 406 при попытке запустить SQL-запрос с Java, хотя я могу подключиться без выполнения SQL-запроса (в моем коде, если я вынуть os.write(queryBody.getBytes()); Я подключусь, но, очевидно, не смогу выполнить свой sql-запрос. Любая идея по этому поводу была бы замечательной, я проверял, не сделал ли я что-то не так в своем запросе, но, похоже, это правильно. Я также попробовал REST клиент, но он не поддерживает соединение сертификации. Вот соответствующий код:
uc.setRequestProperty ("Authorization", basicAuth);
uc.setRequestMethod("POST");
uc.setRequestProperty("Accept", "application/json");
uc.setDoOutput(true);
String queryBody = "\"query\":{\"match\": {\"tables\": \"\"}}, \"size\": 50";
OutputStream os = uc.getOutputStream();
os.write(queryBody.getBytes());
os.flush();
Reader reader = new InputStreamReader(uc.getInputStream());
while (true) {
int ch = reader.read();
if (ch==-1) {
break;
}
System.out.print((char)ch);
}
Я возился со строкой uc.setRequestProperty, но я не могу заставить ее работать с этим. Мой вывод, когда я запускаю uc.getContentType(), это "application/json; charset=UTF-8". Я пробовал другие подобные вопросы в стеке, но не смог найти решение.
1 ответ
Чтобы исправить эту проблему, я изменил строку uc.setRequestProperty("Accept", "application/json"); Для uc.setRequestProperty("Content-Type", "application/json");