我正在从其他一些 API 获取 ID,并访问该 API 的端点。我正在从该 API 获取动态 ID。现在,在我发布的这段代码中,我应该发送一个请求正文,该正文应该接受我从其他 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
提交
取消