我在 Java 中做了一个 HttpUrlConnection GET。并且需要大量处理,代码对返回 JSON 的 URL 进行 GET。(这不是那么大,只有几行)不知道为什么要从 jQuery ajax 调用客户端进行处理。
这是Java代码:
@RequestMapping(value = "/getchartdata", method = RequestMethod.GET)
public ResponseEntity<String> graphChartData(ModelMap model, HttpServletRequest request) {
String graphName = request.getParameter("graphName");
String subgroup = request.getParameter("subgroup");
HttpURLConnection connection = null;
try {
String configURL = EsbConfig.getProperty("graph.url", "http://localhost:8081");
URL url = new URL(configURL + "/plot/get?graphName="+ graphName+"&subgroup="+subgroup+"&width=100");
connection = (HttpURLConnection) url.openConnection();
connection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = null;
StringBuilder responseData = new StringBuilder();
while((line = in.readLine()) != null) {
responseData.append(line);
}
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_JSON);
return new ResponseEntity<String>(responseData.toString(), responseHeaders, HttpStatus.CREATED);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if(null != connection) { connection.disconnect(); }
}
return null;
}
我不会添加 ajax 调用,因为它很简单,没什么好说的。如果我直接使用整个 URL 访问,我会在纳秒内得到 json 响应。如果我从客户端拨打电话,检索信息大约需要 10 秒。
关于有什么问题的任何想法?或我可以实现的任何其他HTTP get?
谢谢。