次の目的を持つサーブレットがあります。
URL を介して (つまり、get を使用して) データを受信します。次に、この入力に基づいてメッセージを呼び出し元に返します。私はこのようなことは初めてですが、json (実際には Gson) を使用することがこれに適していることを学びました。
私の質問は、このjsonメッセージを取得するにはどうすればよいですか? どの URL をターゲットにするか? サーブレットの関連する行は次のとおりです。
String json = new Gson().toJson(thelist);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().println(json);
これは、jsonを取得しようとする方法です:
try{
DefaultHttpClient defaultClient = new DefaultHttpClient();
HttpGet httpGetRequest = new HttpGet("http://AnIPno:8181/sample/response?first=5&second=92866");
HttpResponse httpResponse = defaultClient.execute(httpGetRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONObject jsonObject = new JSONObject(json);
} catch(Exception e){
e.printStackTrace();
}
しかし、jsonObject のサイズが 0 であることがわかったため、明らかにこれは機能しません (3 つの要素を持つ配列である必要があります)。
以前は、サーブレットに println() の代わりに write() がありました。この場合、それが重要かどうかはわかりません。しかし、json オブジェクトの取得方法について何か誤解していると思います。サーブレットの URL を指すだけでは不十分ですか?