【问题标题】:Posting Dynamic values as a request body将动态值作为请求正文发布
【发布时间】:2019-09-05 08:50:49
【问题描述】:

我正在从访问该 API 端点的其他一些 API 中获取 ID。 我正在从该 API 获取动态 ID。 现在,在我发布的这段代码中,我应该发送一个请求正文,该请求正文应该接受我从存储在 str 中的其他 API 获取的动态 ID,并迭代直到 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 和它的休止符直到它的长度。

【问题讨论】:

  • 您好,请问我的回答和下面 Jack 的回答对您的问题有帮助吗?

标签: java http-post azure-functions azure-databricks


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    Hury 的回答几乎是正确的。但是当你想发送一个 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"}
    

    【讨论】:

      【解决方案3】:

      JSONObject jsonObj = new JSONObject();

      jsonObj.put("id", s);

      request1.setEntity(jsonObj);

      【讨论】:

        猜你喜欢
        • 2021-05-31
        • 1970-01-01
        • 2022-09-28
        • 2020-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        相关资源
        最近更新 更多