首页 > 解决方案 > 尝试使用 java 运行 sql 查询时出现 406 错误

问题描述

嘿大家第一次发帖,所以我敢肯定我会错过一些堆栈标准。

无论如何,我在尝试使用 java 运行 sql 查询时遇到 406 错误,即使我能够在不运行 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”。我已经尝试过堆栈上的其他类似问题,但无法提出解决方案。

标签: javajsonhttpconnection

解决方案


为了解决这个问题,我更改了 uc.setRequestProperty("Accept", "application/json"); To uc.setRequestProperty("Content-Type", "application/json");


推荐阅读