嘿大家第一次发帖所以我相信我会错过一些堆栈标准。
无论如何我在尝试使用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”。我已经在堆栈上尝试了其他类似的问题,但无法提出解决方案。
答案 0 :(得分:1)
要解决此问题,我更改了该行 uc.setRequestProperty(" Accept"," application / json"); 至 uc.setRequestProperty(" Content-Type"," application / json");