我在虚拟机上运行我的 openTSDB,并希望使用来自客户端的 JSON POST 请求读取数据。
Baseurl 是我的虚拟机的 URL。
每当我发送此请求时,我都会在我的 openTSDB 中收到错误“无法传递给定的 JSON”。那我的要求有什么问题吗?
提前致谢。
编辑: Json-Request 应该代表这个 GET 请求(有效):
baseurl+"/api/query?start=1356994800000&m=sum:Leistung";
String url = baseurl;
URL obj = new URL(url + "/api/query");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("Content-type", "application/json; charset=utf-8");
con.setRequestProperty("Accept", "application/json; charset=utf-8");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeChars("{\n" +
" \"start\": 1356994800000,\n" +
" \"queries\": [\n" +
" {\n" +
" \"aggregator\": \"sum\",\n" +
" \"metric\": \"Leistung\"\n" +
" }\n" +
" ]\n" +
"}");
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
con.disconnect();
in.close();
System.out.println(response.toString());