0

JavaでHttpUrlConnection GETを作成しました。また、処理に多くの時間がかかります。このコードは、JSON を返す URL への GET を作成します。(これはそれほど大きくはありませんが、数行だけです)クライアント側でjQuery ajax呼び出しから処理するのに、なぜA LOTのようにかかるのかわかりません。

これは 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?

ありがとう。

4

0 に答える 0