为了账号安全,请及时绑定邮箱和手机立即绑定

将动态值作为请求正文发布

将动态值作为请求正文发布

婷婷同学_ 2023-07-13 18:07:59
我正在从其他一些 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);


查看完整回答
反对 回复 2023-07-13
?
精慕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"}


查看完整回答
反对 回复 2023-07-13
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

如果我正确理解你的问题,你想知道如何使用 StringEntity 来存储你的请求参数。您可以按如下方式使用它:

StringEntity param = new StringEntity("id=" + s);

抱歉,如果我误解了您的问题,如果是这样,请告诉我您所关心的更多细节。


查看完整回答
反对 回复 2023-07-13
  • 3 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信