在Java中,我們經(jīng)常使用GET請求來獲取一些數(shù)據(jù)并顯示在頁面上。通常,我們會將參數(shù)放在url中作為查詢參數(shù),但是有時候我們需要向服務器傳遞JSON格式的參數(shù),這時候就需要使用一些特殊的處理方式。
下面是一個例子:
String url = "http://example.com/api"; Mapparams = new HashMap<>(); params.put("name", "John"); params.put("age", "30"); JSONObject jsonObject = new JSONObject(params); String requestBody = jsonObject.toString(); try { URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); con.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream()); out.write(requestBody); out.flush(); out.close(); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); jsonObject = new JSONObject(response.toString()); } catch (IOException e) { e.printStackTrace(); }
在這個例子中,我們首先定義了一個包含name和age兩個參數(shù)的Map對象,并使用JSONObject將其轉(zhuǎn)換為JSON格式的字符串。然后,我們將這個字符串作為請求體發(fā)送到服務器上。最后,我們從服務器的響應中獲取JSON格式的數(shù)據(jù)。
需要注意的是,在使用GET請求時,由于參數(shù)是包含在url中的,所以我們需要將JSON格式的參數(shù)作為請求體發(fā)送到服務器上,而不是將其作為查詢參數(shù)加入url中。