我正在從其他一些 API 獲取 ID,并訪問該 API 的端點。我正在從該 API 獲取動態 ID?,F在,在我發布的這段代碼中,我應該發送一個請求正文,該正文應該接受我從其他 API 獲取的動態 ID,該 ID 存儲在 str 中,并迭代直到 ID 的長度并獲取每個 ID 的 JSON 響應。 for(int i=0;i<array.length();i++) { str.add(array.getJSONObject(i).getString("id")); } for(String s:str) { HttpPost request1 = new HttpPost("/2.0/clusters/events"); //StringEntity params=new StringEntity(array[i]); ***StringEntity params =new StringEntity("{\"id\":\"+s+\"}");*** //main concern to send dynamic ID as a body request1.addHeader("Authorization",bearerToken); request1.addHeader("content-type", "application/json"); request1.addHeader("Accept","application/json"); request1.setEntity(params); System.out.println(params); HttpResponse response1 = httpClient.execute(request1); System.out.println("Response Code:" + response1.getStatusLine().getStatusCode()); String json1 = EntityUtils.toString(response1.getEntity()); System.out.println(json1); JSONObject event = new JSONObject(json1); JSONArray arrays=event.getJSONArray("events"); for (int k=0;k< arrays.length();k++){ JSONObject ids = arrays.getJSONObject(k); System.out.println(ids.get("id").toString()); System.out.println(ids.get("timestamp").toString()); System.out.println(ids.get("type").toString()); System.out.println(ids.get("details").toString()); } }主要問題是如何使用 String Entity 或任何其他使用 JAVA 的方法動態發送值作為請求主體。 我應該獲取每個 ID 的 ID 及其休息時間,直到其長度。
3 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
JSONObject jsonObj = new JSONObject();
jsonObj.put("id", s);
request1.setEntity(jsonObj);

精慕HU
TA貢獻1845條經驗 獲得超8個贊
當你想發送 JSON 字符串時,你應該:
StringEntity?params?=new?StringEntity("{\"id\":\""+?s?+?"\"}");
你可以通過以下方式檢查params.writeTo(System.out);
或者使用 org.json 庫:
StringEntity?params?=new?StringEntity(new?org.json.JSONObject().put("id",s).toString());
上述兩種方法都會輸出如下字符串:
{"id":"aaaa"}

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
如果我正確理解你的問題,你想知道如何使用 StringEntity 來存儲你的請求參數。您可以按如下方式使用它:
StringEntity param = new StringEntity("id=" + s);
抱歉,如果我誤解了您的問題,如果是這樣,請告訴我您所關心的更多細節。
添加回答
舉報
0/150
提交
取消