繁体   English   中英

将动态值发布为请求正文

[英]Posting Dynamic values as a request body

我正在从其他API获取ID,该API指向该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及其位置,直到它的长度为止。

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

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

抱歉,如果我误解了您的问题,请告诉我您所关注问题的更多详细信息。

休利的答案几乎是正确的。 但是,当您要发送JSON字符串时,您应该:

StringEntity params =new StringEntity("{\"id\":\""+ s + "\"}");

您可以通过params.writeTo(System.out);检查params.writeTo(System.out);

或使用org.json库:

StringEntity params =new StringEntity(new org.json.JSONObject().put("id",s).toString());

上面的两种方法都将输出如下字符串:

{"id":"aaaa"}

JSONObject jsonObj =新的JSONObject();

jsonObj.put(“ id”,s);

request1.setEntity(jsonObj);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM