Ошибка 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");

Другие вопросы по тегам