猿问

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

我正在从其他一些 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 及其休息时间,直到其长度。


婷婷同学_
浏览 126回答 3
3回答

慕田峪9158850

JSONObject jsonObj = new JSONObject();jsonObj.put("id", s);request1.setEntity(jsonObj);

精慕HU

当你想发送 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"}

料青山看我应如是

如果我正确理解你的问题,你想知道如何使用 StringEntity 来存储你的请求参数。您可以按如下方式使用它:StringEntity&nbsp;param&nbsp;=&nbsp;new&nbsp;StringEntity("id="&nbsp;+&nbsp;s);抱歉,如果我误解了您的问题,如果是这样,请告诉我您所关心的更多细节。
随时随地看视频慕课网APP

相关分类

Java
我要回答